Rules with parameters

Good morning. Thank u in advance for making this package, it's really cool and congratulations for the effort of making it.
I have a bug in the package I think, when I put a rule with parameters, the package doesn't detect any field. It's like it can't recognize nothing. Here's an example:
public function rules(): array
    {
        $email = ['required', 'string', 'exists:users,email'];
        $hash = ['required', 'string', new InvalidHash(email: $this->email)];

        return compact(['email', 'hash']);
    }

Thank u, Guillermo.

Thanks and yes it doesn't and it is not possible at this moment.


[BUG] 48 Errors while running eggs upgrade

being on deno version 1.4.0

I can't do anything about this sadly 😕
<EMAIL_ADDRESS>is broken on deno 1.4.x so you can't use it to upgrade to<EMAIL_ADDRESS>(but you can upgrade to<EMAIL_ADDRESS>on deno 1.3.x)
You have to install the latest version manually:
deno install -A -f --unstable -n eggs<EMAIL_ADDRESS>

ok - thanks @oganexon


Server doesn't respond to _service.sdl query if it doesn't contain any #[entity] fn

It is a possible situation when a server just includes isolated domain area which is not crossed with entities of any other service. For example, there may be two services with different domains, and it is only needed to create a single endpoint through which they can be accessed.
Repro-project: https://github.com/rkudryashov/async-graphql-reproducer
It contains such query:
pub struct Query;

#[Object]
impl Query {
    async fn some_query(&self, ctx: &Context<'_>) -> SomeType {
        SomeType {
            id: "1".into(),
            test_field: CustomDecimal(dec!(5.0)),
            test_field_2: Successor1 {
                some_field: 3
            }.into(),
            enum_field: TestEnum::Value1,
        }
    }

    #[entity]
    async fn find_entity_by_id(&self, ctx: &Context<'_>, id: ID) -> SomeType {
        SomeType {
            id: "1".into(),
            test_field: CustomDecimal(dec!(5.0)),
            test_field_2: Successor1 {
                some_field: 3
            }.into(),
            enum_field: TestEnum::Value1,
        }
    }
}

If you comment #[entity] line, _service.sdl query will disappear.

I have this case in my pet-project. Let's suppose similar example which includes City service, Country service and Auth service. First contains City entity, second contains Country entity with cities field, and third contains only User entity with createUser and signIn methods.

Well, I'm going to add the option that if there's no entity you can manually open federation support, right?😃

Yes, great :)

Please upgrade to 1.14.11.


Fixes #32 with some html, content, and css changes

Provides consistency across the about, films,and main pages in terms
of paragraph styles, spacing etc
Adds a class of film-date to the places it is shown - italic and spacing
Changes in upcoming films to group and reflect those changes
Again, please merge if you are happy.

@caffiendcode I think that with this merge, we are at a stage where I think we could put this version live.
i.e. replace the main branch with this one, and copy it to the github pages branch, therefore showing the new version of the site to the world - knowing that there are some improvements still - e.g. individual film pages, and formatting the films page etc
But it means we have a working website in place with us now just 6 weeks away from the first film.
What do you think?


The project ‘RNPaypal’ is damaged

The project ‘RNPaypal’ is damaged and cannot be opened due to a parse error. Examine the project file for invalid edits or unresolved source control conflicts.

Thanks for reporting this, the fix I just sent should fix this issue


Runtime error

I have a standalone golang application, that uses github.com/golang/glog
My directory structure is something like,
$GOPATH/godebian

pkg/
bin/
src/
github.com/
goDebian.go

upon running dh-make-golang, I see the following error.

$ dh-make-golang -allow_unknown_hoster /home/godebian
panic: runtime error: slice bounds out of range
goroutine 1 [running]:
panic(0x7ec2c0, 0xc82000e0e0)
/usr/lib/go-1.6/src/runtime/panic.go:464 +0x3e6
main.debianNameFromGopkg(0x7ffc63901209, 0x18, 0x868190, 0x7, 0x0, 0x0)
/build/dh-make-golang-OhS4Fp/dh-make-golang-0.0~git20150913.0.1221041/
obj-x86_64-linux-gnu/src/github.com/Debian/dh-make-golang/make.go:307 +0x829
main.main()
/build/dh-make-golang-OhS4Fp/dh-make-golang-0.0~git20150913.0.1221041/
obj-x86_64-linux-gnu/src/github.com/Debian/dh-make-golang/make.go:575 +0x65e

The error handling is obviously an issue which we should fix, but note that you should call dh-make-golang on a Go package name (go get <arg> needs to work), e.g. dh-make-golang github.com/Debian/pk4


Factorized various eval_as_xxx into a single eval_as template method

I factorized three different similar eval_as_xxx methods into a single template eval_as.

Hello @biagiop1986! Many thanks for your contribution!
The patch you are proposing is of the highest quality! :top: :top: :top:
Let's try to get rid of the things that must be corrected:

commit signature: you are committing without a proper signature. Please, take a look here. The best option is that you generate a new GPG key and you upload the public key on a public key server.
Lint check is failing. You can check details by clicking on the relevant CI item. The problem is that there are some trailing whitespaces, you should format source files with astyle. Most distributions provide directly the package. Once you have installed it, you should use the config file under src and execute:

cd ${workspaceFolder}/src && astyle --project=.astylerc *.cpp *.h

Build CI item is failing. This happens because currently the CI is not properly configured to handle correctly contributions. The problem is that  build-builder.yaml is currently configured to run on Sunday night. Because you opened this PR before this event ever run on your forked repository, there is no such image that CI can use to build chatterbox. A possible workaround to this could be that you try to build the builder image on your machine and then you push it on github. Let's take this issue for last.

@biagiop1986 you need to sync your fork and then rebase against main.
Now you have the chatterbox-builder image available, so CI should not be broken anymore.

@biagiop1986 you need to sync your fork and then rebase against main. Now you have the chatterbox-builder image available, so CI should not be broken anymore.

Thank you, done right now! I'm going to open a new pull request.

please, squash the 2 commits, no need to co-author the latest commit.

please, squash the 2 commits, no need to co-author the latest commit.

Done!

thanks! merged :100:


fix: juno utils require path

Description

fix require path following the PR forbole/juno#32 (feat: add util method to get genesis doc and state):
import (
   juno       "github.com/forbole/juno/v2/types"
   junoutils  "github.com/forbole/juno/v2/types/utils"
)

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Codecov Report

:exclamation: No coverage uploaded for pull request base (v2/cosmos/stargate@9ca1491). Click here to learn what that means.
The diff coverage is n/a.

@@                  Coverage Diff                  @@
##             v2/cosmos/stargate     #279   +/-   ##
=====================================================
  Coverage                      ?   50.58%
=====================================================
  Files                         ?       19
  Lines                         ?     1870
  Branches                      ?        0
=====================================================
  Hits                          ?      946
  Misses                        ?      796
  Partials                      ?      128


for some apps no image urls were retrieved (fixed)

Some examples to cross-check:

was working before and after: com.twidere.twiderex
was only working after: net.activitywatch.android

Merged, Thank you. :+1:


Adding dockerfile

Codecov Report

Merging #19 into master will decrease coverage by 0.36%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
- Coverage   84.81%   84.44%   -0.37%
==========================================
  Files          15       15
  Lines         474      450      -24
==========================================
- Hits          402      380      -22
+ Misses         41       40       -1
+ Partials       31       30       -1

Impacted Files
Coverage Δ

pkg/cmd/config.go
41.66% <0%> (-3.79%)
:arrow_down:

pkg/scan/bootstrap.go
89.47% <0%> (+4.1%)
:arrow_up:

pkg/dictionary/dictionary.go
100% <0%> (+6.06%)
:arrow_up:

Continue to review full report at Codecov.

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


[WFCORE-5272] Legacy JACC provider changes require restart

Issue: https://issues.redhat.com/browse/WFCORE-4827
Legacy security part of https://github.com/wildfly/wildfly-core/pull/4475

@spyrkob Can you file a WFLY for this and use it in the commit message and PR title? This is distinct work from the WFCORE fix. Thanks.


discord server

can you make a discord server because i need someone to help me and github isnt the best for communicating so i am asking if you could make a github

I should get around to also putting the link on the curseforge page.
https://discord.gg/eYf7DDHhvN


Closes #534

Summary
This PR fixes the bug reported in #534: when using a Rosbridge server, there is a race condition that may cause Publisher components (used, for example, in the Publish panel and the -currently unmerged- Teleop panel) to get an undefined rosClient, which causes a panel crash when a message is published. Current workaround is to force a rerender of the Publisher component by changing any of its props (for example, the published topic) as specified in https://github.com/cruise-automation/webviz/issues/534#issuecomment-749531771.
This PR fixes the bug by adding a new array of pending publishers. If the setPublishers method of RosbridgePlayer is called before rosClient is set, the publishers are instead buffered on the new array. Any publish() calls are rejected gracefully. When the connect hook is eventually called and rosClient gets a value, the most recent set of pending publishers is sent to setPublishers.
Test plan
This change was tested using the Publish and Teleop panels (which instantiate a Publisher component) and a Rosbridge Websocket server. The test case detailed in https://github.com/cruise-automation/webviz/issues/534#issue-728355717 no longer fails.
Versioning impact
This PR is a patch revision.

@jreyesr , I see foxglove used this commit. We're looking to cherry-pick this into our internal build of webviz. Since you've put up the PR here over a year ago, have you had and negative experience with the change in your builds?
Just trying to exercise extra due diligence as we're looking to incorporate this change late in our internal release schedule.

I should mention this change has addressed the same issue it was meant to correct (in our tests). We just don't know the webviz architecture enough to understand unintended side effects.


6

Context
Please explain here below what you were doing when the issue happened
Steps to Reproduce
Please break down here below all the needed steps to reproduce the issue

Current Result
Please describe here below the current result you got
Expected result
Please describe here below what should be the expected behaviour
Browser and version
What internet browser (Chrome, Firefox, etc) and version was you using and version
.carto file
Don't forget to rename .carto file to .zip file to be able to upload to github
Additional info
Please add any information of interest here below

@yauchungpo the template has not been modified, maybe there was a problem...


adding code to handle duplicate tag rows with note info (merge note or force insertion)

yes, added code to take care of the duplicate tags with a note. also refactored the "create_tag" function to move the duplicate tag check code to another function to make code cleaner and more readable. Thanks for looking over! @azurebrd


Process doesn't exit, just by instantiating

When I instantiate a papertrail transport, the process doesn't exit anymore. I don't even have to add it to the transports. And if I add it to transports and call close on the winston object, this happens:
node_modules\winston\lib\winston\config.js:30
  else if (allColors[level].match(/\s/)) {
                           ^

TypeError: Cannot read property 'match' of undefined
    at Object.config.colorize (node_modules\winston\lib\winston\config.js:30:28)
    at Papertrail.sendMessage (node_modules\winston-papertrail\lib\winston-papertrail.js:349:68)
    at Papertrail.log (node_modules\winston-papertrail\lib\winston-papertrail.js:301:10)
    at Transport.logException (node_modules\winston\lib\winston\transports\transport.js:134:8)
    at logAndWait (node_modules\winston\lib\winston\logger.js:643:15)
    at node_modules\async\lib\async.js:157:13
    at _each (node_modules\async\lib\async.js:57:9)
    at Object.async.each (node_modules\async\lib\async.js:156:9)
    at Logger._uncaughtException (node_modules\winston\lib\winston\logger.js:666:9)
    at emitOne (events.js:96:13)```

which seems to be related to Transport.logException, and when I set handleExceptions to false, I get
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: write after end
    at writeAfterEnd (_stream_writable.js:166:12)
    at TLSSocket.Writable.write (_stream_writable.js:217:5)
    at TLSSocket.Socket.write (net.js:643:40)
    at TLSSocket.onConnected (node_modules\winston-papertrail\lib\winston-papertrail.js:228:25)
    at TLSSocket.g (events.js:286:16)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:185:7)
    at TLSSocket.<anonymous> (_tls_wrap.js:1076:14)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:185:7)

And finally, similar to #52, if I introduce a one second delay before calling close, it seems to work, but an explicit call to close is required. Do you always have to close the connection as soon as a Papertrail object exists? Something definitely remains in the event loop, since I cannot use exit or beforeExit to close it automatically.

when is this going to be fixed?

@typedefstructer roughly 2 weeks after you or anyone else submits a pull request fixing it. If you'd like to, please feel free.

sorry for being arrogant for asking "when is this going to be fixed??",
but then in another issue, the suggested calling tr.close() on 'connect' event. i dont understand how that will help, when i want realtime logs. and this issue is causing gulp build to freeze. we have to run a build step for doing es6 to es5


Install OpenSSL library in Windows CI workflow using Chocolatey

Motivation
Aims to solve #566.

Solution
Using Chocolatey to install the OpenSSL library; one big downside is that the installed version (OpenSSL 1.1.1  11 Sep 2018) is not the latest. Not sure if this is acceptable.
Have yet to figure out how to cache the files downloaded by OpenSSL, but the installation of OpenSSL only takes ~1 min.
As for the CI build time, linux and mac-os builds are not impacted (as expected).
The windows build takes ~11 min, which is ~3min more than the mac-os build: master CI vs. this branch.
Any suggestion is appreciated!

Wow. This is great. It looks a lot more reasonable than the times I remember getting out of it.
Install times for openssl looks acceptable, and a lot of the time here seem to come from compiling dependencies, so it could possibly be optimised more if the windows caching worked better :thinking:
Don't have time to really dig into options right now, but initially this is a big :+1: from me.

Going to merge this in. It will be good to see how it performs long term, and it's clearly a big improvement!
Thanks again @ChinYing-Li


let rustfmt format imports

This matches the recent change in rustc.
@rust-lang/miri what do you think?

Looks good to me. I much prefer things like formatting to be automated.

All right, let's go then.
@bors r=oli-obk,saethlin

:pushpin: Commit<PHONE_NUMBER>8184e00ef17ac1f65b0106f4f96a36 has been approved by oli-obk,saethlin
It is now in the queue for this repository.

:hourglass: Testing commit<PHONE_NUMBER>8184e00ef17ac1f65b0106f4f96a36 with merge 71f296e1265ad72fe5a7252da1b245d331aabcf1...

:sunny: Test successful - checks-actions
Approved by: oli-obk,saethlin
Pushing 71f296e1265ad72fe5a7252da1b245d331aabcf1 to master...


Refine item.js view

Working on local branch front_end_nils_plus; must merge this branch with front_end_nils

TODO: add alphabetical ordering (?) to fields

ADDED: alphabetical ordering, live links, better arrays of objects, visual enhancements. To do: robust title look up, tooltips, /terms/ (fallbacks)

Added a unit test and robust look up, as well as tooltips. Will merge tomorrow


⚠ OBSN has degraded performance

In 80183d6, OBSN (https://obsn.org) experienced degraded performance:

HTTP code: 200
Response time: 20843 ms

Resolved: OBSN performance has improved in 59418af after 17 minutes.


beam.pro plugin

Beam.pro is a new game streaming site with low stream delay (3-5s rather than Twitch's 30s or more).

I was able to watch a beam.pro stream with VLC by manually extracting RTMP URL. I think it may be useful for developing a livestreamer plugin for beam.pro, (and also for people needing a temporary workaround) so here's how I did it:
I opened some beam.pro channel in Firefox, and looked at the developer console. There was a message like this: "Connecting to Beam anycast RTMP network with smil file at: /api/v1/channels/6380/manifest.smil" printed by some javascript. Looks like it uses an undocumented of beam.pro API, because /api/v1/channels/:id/ is the official API url for a channel. (so instead of finding that link on the website, I guess you could ask API for a channel ID of a particular username).
I opened https://beam.pro/api/v1/channels/6380/manifest.smil and there was a small piece of XML with a <meta base="rtmp://dist1.beam.pro/beam/"/> tag in it's head, and what I guess is a list of video qualities in it's body. There was just one quality: <video src="source_6380.mp4" title="source (800x500)" width="800" height="500"/>. After appending source_6380.mp4 from the video tag to the base URL from the meta tag, I got a link that I could succesfully open in VLC.

requesting https://beam.pro/api/v1/channels/username/ and extracting thumbnail.relid looks like it gives you the active stream channel id, and if I put that into the url for rtmp://dist1/beam.pro/beam/source_{relid}.mp4, allows me to open it in vlc. But the manifest lists the various sizes. I saw a source_ and a 480p_. Thanks for the tip tho, this work around will work until a plugin is written.

Just wanna thank you a lot for the info, i was able to play beam streams in MPC HC 1.7.8
Also +1 to the plugin request :P

Implemented by #920.

Btw. I found out that the "replay of the last stream" feature of beam uses a manifest with URL like http://dist.beam.pro/dash/:id/manifest.json (where :id is user id, same as in live stream url). The .photon files mentioned in the manifest are in the same directory, and when cat-ed together, they make something that can be viewed with ffplay or vlc.
Wondering whether this could be implemented as VOD in livestreamer, and whether I should open another issue, or if this one should be reopened.


feat: ConfigService cache record stats

What's the purpose of this PR
ConfigService cache record stats
Which issue(s) this PR fixes:
Fixes #5246
Brief changelog
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Read the Contributing Guide before making this pull request.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit tests to verify the code.
[ ] Run mvn clean test to make sure this pull request doesn't break anything.
[ ] Update the CHANGES log.

Summary by CodeRabbit
Release Notes

New Features

Introduced a method to enable cache statistics in configuration settings.
Enhanced cache initialization with monitoring capabilities for better performance insights.
Added a global search feature for administrators to easily find values.

Bug Fixes

Resolved issues with duplicate comments and blank lines in configuration management.
Fixed a link issue where some published items were missing.

Documentation

Updated the distributed deployment guide with comprehensive instructions for Docker and Kubernetes deployments.
Expanded sections on environment preparation, database requirements, and network configuration for clarity and usability.
Added new sections describing the cache statistics function and its configuration.

These updates improve user experience and provide more control over configuration and deployment processes.

@nobodyiam I have solved these problems, please review again


Make JavaSyntaxChecker report multiple errors.

Coverage remained the same at 77.062% when pulling 109ca43053ed9046f98e20ff8eb78d94a03232e5 on dwarfcrank:syntax-check-errors into ca92bd6367bff714942eb7f99d76711fd9a878d5 on tdd-pingis:master.


add functionality for reply box to appear under a post when its reply…

… button is clicked.
Also,
sendAndGet is removed; Added submit event listeners on both forms to use Fetch to post to the server once a form's submit button is clicked.

Pretty big PR, please try to break it down into smaller pieces next time so it's easier to follow

LGTM

Pretty big PR, please try to break it down into smaller pieces next time so it's easier to follow

Noted


feat: Update ShopSync support to 1.1

Since my initial implementation the ShopSync standard has been updated twice. This PR attempts to update the implementation to support ShopSync 1.1. To summarize the changes:
Shops no longer broadcast every 30 seconds
Instead of broadcasting every 30 seconds, shops now broadcast in the following situations (direct quotes from the standard):

Situation 1: Shops should broadcast once, math.random() * 15 + 15 seconds after bootup (so within the range of 15 to 30 seconds)

Situation 2: Shops should broadcast after a shop session or purchase is fully completed. Shops should also broadcast after the items for sale or the stocks available are changed. (...) Shops should enforce a 30-second minimum interval between broadcasts while still ensuring that information within broadcasts is up-to-date as of the time at which it is broadcasted. For example, if a shop receives a purchase, sends a broadcast, and then receives another purchase within 5 seconds, it should defer/queue the broadcast to 25 seconds later, unless a broadcast is already queued. The broadcast 25 seconds later should use data gathered at the time of the broadcast being sent, not at the time of it being queued.

I still need to do the queue system described in situation 2, but I'll mark the PR as ready for review once it's done
New fields

dynamicPrice was added - I am assuming this is always false
info.computerID was added, at the same time the definition for the return channel slightly changed
info.otherLocations was technically added but left out (could be revisited with #34)?

oh, and allow edits by maintainers should be enabled this time


Fix renaming enum case parameters with unnamed associated arguments

Explanation: We treated enum case parameters the same way as function parameters and weren’t considering that they can be unlabeled. That caused us to insert eg. _  in front of the case’s type, producing case myCase(_ String), which is invalid. Report enumCaseParameters as a special parameter kind so that sourcekitd can work with it.
Scope: Rename in SourceKit
Risk: Low, only affects rename of enum cases
Testing: Added test cases
Issue: rdar://127646036 / https://github.com/apple/sourcekit-lsp/issues/1228
Reviewer:  @hamishknight on https://github.com/apple/swift-syntax/pull/2678

https://github.com/apple/swift-syntax/pull/2691
https://github.com/apple/sourcekit-lsp/pull/1482
@swift-ci Please test


Update circe-core, circe-generic, ... to 0.14.2

Updates

io.circe:circe-core
io.circe:circe-generic
io.circe:circe-literal
io.circe:circe-parser

from 0.14.1 to 0.14.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.circe" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequest = { frequency = "@monthly" },
  dependency = { groupId = "io.circe" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Codecov Report

Merging #294 (4832932) into develop (6c311ee) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #294   +/-   ##
========================================
  Coverage    50.58%   50.58%
========================================
  Files            5        5
  Lines           85       85
========================================
  Hits            43       43
  Misses          42       42

Continue to review full report at Codecov.

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


Organizations service for public tenant

As part of this, phase out the Agent configuration for the repository groups json file.

@kmccarp do we want to deploy this as an additional micro-service?

per standup, yes, we'll deploy as microservice to public tenant

Will need to add as another microservice? https://github.com/moderneinc/moderne-common/blob/main/src/main/java/io/moderne/common/ModerneMicroservice.java#L22-L33

deployed a separate service to public tenant only

https://github.com/moderneinc/moderne-api-gateway/pull/198
https://github.com/moderneinc/moderne-organizations/pull/5

formally deployed to https://organizations.moderne.ninja/graphiql/index.html


Extension resources propagate to different site collection when navigating through hub site

Category

[] Question
[x] Bug
[] Enhancement

Observed Behavior
When navigating using the hub site navigation the page doesn't reload. If any extension is loaded on the page its resources are propagated to the navigated page, even if it's a different site collection that doesn't have this extension. ie: CSS form extension X designed to affect site collection X is going to affect site collection Y.
Steps to Reproduce
Load an SPFx Extension with some custom CSS, navigate using the hub navigation into a different site collection and see the CSS being propagated into the newly navigated site.
Thank you!

I'm temporarily forcing refresh when I detect a navigation of this kind. This is not an optimal solution, can I get an update this issue?

Hey @jcosta33 did you ever solve this issue?
I'll close the issue due to the lack of activity, but feel free to open a new issue if you still need more help. Maybe we'll be able to get a fresh set of eyes on this.


Firefox selecting more than 10 tabs in batch mode fails to open tabs

Firefox selecting more than 10 tabs in batch mode fails to open jobs in new tab
WaterlooWorks Azure (V2.0.3)
Firefox: 62.0 (64-bit)
Steps:

Load job postings
Select batch button
Select a number of jobs >= 10
Hit open in new tab
Wait a bit and no new tabs open. Note that it works correctly for #tabs < 10

NB: Same behaviour in Chrome


Disable internal command line usage in release

I'm currently working on an application that requires command line input. I am struggling a little because Godot will actually error out if you pass an argument to it that doesn't start with a - and is not a valid path to a PackedScene in res:// that it can start up with. I also see this being a small issue with some developers who don't want to give the player the ability to start random scenes up.
It would be nice to remove this from release. For reference you can see this line main/main.cpp#L1339 which does what I mentioned above.

This is related to #8721, which would make it possible for applications to handle file paths gracefully without disabling other CLI arguments.

It seems I didn't look properly before making a new ticket. You can mark as duplicate as the latter ticket's latest discussion is what I'm after.


Query Fees Collected - does not match estimation

Hi,
What
The total amount of queryFeesCollected for closed long term allocation does not match estimation (manual calculation):
Investigation:
Closed Allocation (open: 65, close: 91, duration: 27) as per query below collected 0.05 GRT, which is dramatically low in comparison with allocations before and after.

totalAllocations__closedAtEpoch
totalAllocations__createdAtEpoch
totalAllocations__id
totalAllocations__queryFeesCollected
totalAllocations__status

108
91
0x097922fdc28907b5dd60d0c710865cd80ed56318
86.5619865
Closed

91
65
0xd3409eb7abf379a12835cb66898771a83c8b4473
0.05047515
Closed

65
58
0x978b11c0953599ad52b889d03867fc5112976d95
17.9900028
Closed

58
45
0x26b957c2a141acf5768e21efe0d9afff8d587a4e
259.0472907
Closed

58
49
0x5feacb47af67dee57ee10bedaef5ad93627b1d97
9.7461144
Closed

58
46
0xc66d80f65188311ec1dccd23c77da91354803a50
141.8263506
Closed

Query:
{
  indexer (id:"0x720a98087160bfdb282f695abe6f9ac966b03d43") {
    id
    totalAllocations{
      id
      status
      createdAtEpoch
      closedAtEpoch
      indexingRewards
      poi
      queryFeesCollected
      queryFeeRebates
    }
  }}

As per summary from server logs for mentioned period, the total amount of queries received and fees collected, should be:
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 102511, 20210217
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 189511, 20210219
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 180074, 20210220
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 173312, 20210221
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 148499, 20210222
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 166510, 20210223
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 172330, 20210224
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 161198, 20210225
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 152411, 20210226
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 140392, 20210227
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 138167, 20210228
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 134491, 20210301
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 113156, 20210302
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 129508, 20210303
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 122893, 20210304
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 25581, 20210305
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 190944, 20210306
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 151229, 20210307
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 117728, 20210308
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 54805, 20210309
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 126816, 20210310
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 169748, 20210311
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 161799, 20210312
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 166621, 20210313
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 163947, 20210314
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 74610, 20210315
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 7516, 20210316
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 106211, 20210317
QmRhYzT8HEZ9LziQhP6JfNfd4co9A7muUYQhPMJsMUojSF, 138919, 20210318

Query
Price
Total

3881437
0.00005
194.07185

Could you, please, help to figure out this issue.
Regards,

@davaymne Hey, I am well versed in the Subgraph part, but not the logs you have shared as I don't deal much with graph-node.
Are the logs you shared query counts? The first row queries? The second row, something else?
And then are you just taking those queries and multiplying by 0.00005 GRT price?

Logs structure: , , .
So, I sum all queries that graph-node processed over the period (~29 days) - allocation 0xd3409eb7abf379a12835cb66898771a83c8b4473 duration and multiplied by query price, so 3881437 x 0.00005 = 194.07185

The low amount of query fees collected for allocation 0xd3409eb7abf379a12835cb66898771a83c8b4473 is ok in the subgraph, it happened on this transaction https://etherscan.io/tx/0x72171a4bd966234a25015ca29a382fb4a869c4300508ad9f6742365faee73e7b
The discrepancy between the expected query fees, from the actual query responses and the amount collected could be in the gateway. Probably there were some missing collect transactions? or the amount was less than it should

It seems to be a huge difference, as 0.05 is much less than 194 (estimated). I seems like 1K queries were counted instead of ~3.9M.
Is there any way to troubleshoot on gateway side?
I still have all these query logs in case you need it.
Regards,

Yes , please share the query logs with us, maybe in a gist or a paste bin.
We will debug the gateway on our side. However, it may take some time, we have a lot going on at the moment. We will keep you up to date

Hm.. there are 16Gb query logs in jsonl format - for those days. What would be the best way to share?

ping me on discord and we can figure it out

Is this still an issue? @davekaj
If yes, I could add it as a task and continue investigation, if not I'll close the issue

its still open if it exists. i remember i got the files, talked to engineering about it, but couldnt get their time to look at it, and then i forgot about it.


scheduled_messages: Respect localization and user preferences.

This commit ensures that user-locale and 24-hour preferences are respected in the message-scheduling modal. It also simplifies the translation of text strings in the scheduling modal.
Available scheduling options and their time values, including whether the options are allowed, are now calculated every time a user opens the scheduling modal.
In order to achieve those things, additional interrelated fixes here accomplish the following:

Modal-scheduling opts now have data- attributes containing timestamps for the time a message will be scheduled to send.

With those timestamps in place, the logic for setting the scheduled send-time is simplified.

There are no more send_later_xxx global variables in the schedule_send module.

Fixes #25403.

Screenshot showing proper display of 24-hour time:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Thanks! I'll test it now (once an updated version of Vagrant installs), but as a general guideline, all PRs that have some kind of UI change (like supporting 24hr time for this one) should include a screenshot. This often lets me provide feedback without running the code.  Screen captures are sometimes helpful as well. There are some specific tips here: https://zulip.readthedocs.io/en/latest/contributing/reviewable-prs.html#tips-and-best-practices

Ah, OK. In that case, definitely leave a note on the PR that makes it clear that it's not ready for review. I even saw that CZO thread, but still assumed that the PR was ready for manual testing.

Yeah, I'm really sorry about that. In my excitement over everything else in this PR, I forgot to go check that 24-hour time was actually working. I'll downgrade to Draft and leave a note until I've resolved this.

All right. I've fixed this up now and I believe it's ready for review. Because of the interconnectedness of the additional changes I made, this is now one large commit.

Looks good to me in manual testing!
I'm assuming everything is marked for translation, and the "Today at", "Tomorrow at", etc. strings are just new.

My only comments are the naming scheme things, merging with these changes to address them:
diff --git a/web/src/scheduled_messages.js b/web/src/scheduled_messages.js
index 0415c4832a..940848ca7d 100644
--- a/web/src/scheduled_messages.js
+++ b/web/src/scheduled_messages.js
@@ -17,7 +17,7 @@ import * as timerender from "./timerender";

 export let scheduled_messages_data = [];

-function compute_later_send_times(now = new Date()) {
+function compute_send_times(now = new Date()) {
     const send_times = {};
     const today = new Date(now);
     const tomorrow = new Date(new Date(now).setDate(now.getDate() + 1));
@@ -172,7 +172,7 @@ export function get_count() {
 }

 export function get_filtered_send_opts(date) {
-    const st = compute_later_send_times();
+    const send_times = compute_send_times();

     const day = date.getDay(); // Starts with 0 for Sunday.
     const hours = date.getHours();
@@ -181,16 +181,26 @@ export function get_filtered_send_opts(date) {
         today_nine_am: {
             text: $t(
                 {defaultMessage: "Today at {time}"},
-                {time: timerender.get_localized_date_or_time_for_format(st.today_nine_am, "time")},
+                {
+                    time: timerender.get_localized_date_or_time_for_format(
+                        send_times.today_nine_am,
+                        "time",
+                    ),
+                },
             ),
-            stamp: st.today_nine_am,
+            stamp: send_times.today_nine_am,
         },
         today_four_pm: {
             text: $t(
                 {defaultMessage: "Today at {time}"},
-                {time: timerender.get_localized_date_or_time_for_format(st.today_four_pm, "time")},
+                {
+                    time: timerender.get_localized_date_or_time_for_format(
+                        send_times.today_four_pm,
+                        "time",
+                    ),
+                },
             ),
-            stamp: st.today_four_pm,
+            stamp: send_times.today_four_pm,
         },
     };

@@ -200,24 +210,24 @@ export function get_filtered_send_opts(date) {
                 {defaultMessage: "Tomorrow at {time}"},
                 {
                     time: timerender.get_localized_date_or_time_for_format(
-                        st.tomorrow_nine_am,
+                        send_times.tomorrow_nine_am,
                         "time",
                     ),
                 },
             ),
-            stamp: st.tomorrow_nine_am,
+            stamp: send_times.tomorrow_nine_am,
         },
         tomorrow_four_pm: {
             text: $t(
                 {defaultMessage: "Tomorrow at {time}"},
                 {
                     time: timerender.get_localized_date_or_time_for_format(
-                        st.tomorrow_four_pm,
+                        send_times.tomorrow_four_pm,
                         "time",
                     ),
                 },
             ),
-            stamp: st.tomorrow_four_pm,
+            stamp: send_times.tomorrow_four_pm,
         },
     };

@@ -225,9 +235,14 @@ export function get_filtered_send_opts(date) {
         monday_nine_am: {
             text: $t(
                 {defaultMessage: "Monday at {time}"},
-                {time: timerender.get_localized_date_or_time_for_format(st.monday_nine_am, "time")},
+                {
+                    time: timerender.get_localized_date_or_time_for_format(
+                        send_times.monday_nine_am,
+                        "time",
+                    ),
+                },
             ),
-            stamp: st.monday_nine_am,
+            stamp: send_times.monday_nine_am,
         },
     };

Added these changes on top of that to cover https://github.com/zulip/zulip/pull/25449#discussion_r1186346201.
index 940848ca7d..e78bb0507e 100644
--- a/web/src/scheduled_messages.js
+++ b/web/src/scheduled_messages.js
@@ -19,10 +19,15 @@ export let scheduled_messages_data = [];

 function compute_send_times(now = new Date()) {
     const send_times = {};
+
     const today = new Date(now);
     const tomorrow = new Date(new Date(now).setDate(now.getDate() + 1));
     // Find the next Monday by subtracting the current day (0-6) from 8
     const monday = new Date(new Date(now).setDate(now.getDate() + 8 - now.getDay()));
+
+    // Since setHours returns a timestamp, it's safe to mutate the
+    // original date objects here.
+    //
     // today at 9am
     send_times.today_nine_am = today.setHours(9, 0, 0, 0);
     // today at 4pm


Buttons to navigate to a PR does not work

When I try to click the link button to navigate to a Pull Request, nothing happen.
There is a space in my Team Project name.

Hi @philippedurocher
Would you mind to check on the Console tab of Developer Tools (F12) of your browser to check if there is any error there? The tem Project Name shouldn't impact on that..

I don't have an error when I click the link but I see some errors when load the page

Thanks for sharing the details @philippedurocher. I see that you are using the old ADO URL scheme. Would you mind to test using the new? It will look like:
https://dev.azure.com/{YOUR_ORG_ACCOUNT}

I'm using the new URL to login but I did not change the URL in org settings.
Seems the profile images still uses the old URL.

@philippedurocher thanks for sharing the details. It's the first time I see this issue happening.
Would you mind to once again check in our Org's Settings if is it using the new URL format?

Now images are using new URL but still buttons not working.

I decided to uninstall and reinstall the extension with new URL.
Now base URL reference and base URL are good. But buttons still not working.

That's really really strange! Once more question from my end. Could you please check if the pop-up is blocked? The extension tries to open a new window when you click on it.

I'm glad it's fixed :-)
You can set your preferences also to make it to open on the same window, if you prefer. ;-)

Hi @philippedurocher - please don't forget to give your rating to the extension in the marketplace, it helps us to improve it :-)


Convenience Function: calculateRequiredComponentsAndUnitsAsync

Completes this card.
This is a convenience function that makes it easy to calculate a user's required components and units.

Very useful stuff


vmexport: Print logs into stderr to avoid messing with stdout downloads

What this PR does
Before this PR:
We recently included an option in virtctl vmexport to explicitly dump the volume downloads into stdout. Since all logs were also printed into stdout, redirections were still useless.
After this PR:
Now, when downloading into stdout, all logs will be printed into stderr to avoid interfering with redirections. As a minor correction, the error strings have been updated to match style conventions (no uppercase start, no end period).

Fixes https://issues.redhat.com/browse/CNV-38707
Why we need it and why it was done in this way
The current solution might be overkill: Overwriting the default printer to change output might not be necessary at all. This could work in the same way by printing all logs into stderr in all cases (as the log package does) but this implementation made sense to me during development.
Special notes for your reviewer
If you think this is overkill and that it's preferable to just set fprintf to stderr in all cases, I can change it without problem.
Release note

Bugfix: Allow vmexport download redirections by printing logs into stderr

I might even go further, and say if someone requested that we are printing the data to stdout, they are using that as part of a script or something else, and they don't want any output besides the data. And to simply not print anything that is not an error.

I might even go further, and say if someone requested that we are printing the data to stdout, they are using that as part of a script or something else, and they don't want any output besides the data. And to simply not print anything that is not an error.

I've been trying to implement this option but I'm not sure anymore since we don't fully control the port forwarder logs. Also, the user that might want to add this to a script could also redirect our stderr to null if preferred without any downsides. We can set the port-forwarder output writer (currently, stderr)  to /dev/null when downloading into stdout, but since this requires more logic I lean more towards displaying the logs and leave the redirection to the user.

Thanks for the reviews! Opening backport:
/cherry-pick release-1.2


Infinite rounds of prevote if I change BlockExecutor.ValidateBlock to reject every proposal block

Bug Report
Setup
CometBFT version (use cometbft version or git rev-parse --verify HEAD if installed from source):
cometbft v0.34 cosmos-sdk v0.46
Have you tried the latest version: yes/no
No
ABCI app (name for built-in, URL for self-written if it's publicly available):
Environment:

OS (e.g. from /etc/os-release): Macos
Install tools:
Others:

node command runtime flags:
Config

default
What happened?
What did you expect to happen?
I made an experiment that I changed BlockExecutor.ValidateBlock logic to simply reject every proposal block, and then I complied cosmos-sdk simd to start a test network. I expect there should be consensus failure, but it actually just keep doing prevote for infinite rounds
How to reproduce it

change this function logic to reject every proposal block: https://github.com/cometbft/cometbft/blob/a38990084cf1b8bc385c43b96d6fa0b704e345b4/state/execution.go#L117-L123
func (blockExec *BlockExecutor) ValidateBlock(state State, block *types.Block) error {
	return fmt.Errorf("reject for no reason")
}

then checkout to cosmos-sdk release/v0.46.x and change go.mod to depend on modified cometbft code, and make install to install simd. start the local testnet with pystarport. The network would stuck in infinite prevote
Logs

https://pastebin.com/wmVmsQK9
dump_consensus_state output

Anything else we need to know

Hi @adu-web3
An invalid block (which is what you are simulating) detected during the prevote will be interpreted as an error on the proposer's side, causing the validator to pre-vote nil, which will lead to new rounds being started (code here) and eventually leading to a good proposal being sent and pre-voted for.
If the bad proposal would just stop the algorithm, a byzantine proposer would have an easy DoS vector.
A failure of validation later, e.g. during commit, means that the block passed the validation earlier but is now considered invalid, which should never happen. This is an error on which we want to stop the system for further analysis.

I am converting this issue to a discussion for now.


Add entrypoint method for v4/paymentMethods endpoint

This PR allows users to call v4/paymentMethods endpoint.
We will also plan to make another PR that enables users to take advantage of paymentMethods retrieved v4/paymentMethods when they make payments.
All Submissions:

[x] Have you followed the guidelines in our Contributing document?
[x] Have you read and signed the automated Contributor's License Agreement?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

[x] Does your submission pass tests?
[x] Have you lint your code locally prior to submission?

Changes to Core Features:

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your core changes, as applicable?
[x] Have you successfully ran tests with your changes locally?

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

Let me ignore the claim from codeclimate (false positive comment) and Better Code Hub check for now.

Thank you for the review! Merge this


Connect with TLS

I'm trying to connect to the GCM XMPP Connection Server [1] with Hedwig. They require a TLS connection and don't support STARTTLS [2]. I tried different combinations in the config but it won't connect.
[info]  Outgoing stanza: {:xmlstreamstart, "stream:stream", [{"to", "gcm.googleapis.com"}, {"version", "1.0"}, {"xml:lang", "en"}, {"xmlns", "jabber:client"}, {"xmlns:stream", "http://etherx.jabber.org/streams"}]}
[error] GenServer #PID<0.165.0> terminating
** (MatchError) no match of right hand side value: {:error, {'not well-formed (invalid token)', <<21, 3, 1, 0, 2, 2, 70>>}}
    (hedwig) lib/hedwig/transports/tcp.ex:158: Hedwig.Transports.TCP.handle_data/3
    (stdlib) gen_server.erl:615: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:681: :gen_server.handle_msg/5
    (stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:tcp, #Port<0.5575>, <<21, 3, 1, 0, 2, 2, 70>>}
State: %Hedwig.Transports.TCP{client: #PID<0.162.0>, compress?: false, config: %{client: #PID<0.162.0>, ignore_from_self?: true, port: 5235, preferred_auth_mechanisms: ["PLAIN"], require_tls?: true, server: "gcm-xmpp.googleapis.com", transport: Hedwig.Transports.TCP, use_compression?: false, use_stream_management?: true}, parser: {:parser, "", []}, pid: #PID<0.164.0>, socket: #Port<0.5575>, ssl?: false, transport: Hedwig.Transports.TCP}

However, if I replace :gen_tcp with :ssl in the Hedwig.Transports.TCP module the connection is established without errors. Is there some settings to force such behavior in the config?
[1] https://developers.google.com/cloud-messaging/xmpp-server-ref
[2] https://developers.google.com/cloud-messaging/ccs

@awenger thanks for the report. At this time, this is not configurable, but it certainly should be. I'm currently in the middle of rewriting Hedwig so I won't be able to address this right now.

Happy to hear that this will be supported in a future version. Thanks for the lib. For the time being manually replacing :gen_tcp with :ssl is a manageable workaround for me.

Excellent. I am currently working to make Hedwig more generic (adapter
based). The first adapter will be XMPP of course :)
I would love some feedback once it's ready.
On Sun, Dec 6, 2015 at 20:47 awenger<EMAIL_ADDRESS>wrote:

Happy to hear that this will be supported in a future version. Thanks for
the lib. For the time being manually replacing :gen_tcp with :ssl is a
manageable workaround for me.
—
Reply to this email directly or view it on GitHub
https://github.com/hedwig-im/hedwig/issues/23#issuecomment-162341306.

@awenger thanks again for the report! I've created an issue on scrogson/romeo#2 to address it.


OAuth Popups not opening for sites like claude.ai

@mrivasperez Thanks for building this amazing lightweight browser. I am using this for a different use case of building a super app for AI users. AI users can visit only AI platforms like chatgpt, claude, gemini, mistral, etc because we are navigating them to those platforms using a dropdown in the navigation of our app. I am able to open the apps but many CSP issues are acting as blockers.
For instance:
When opening claude.ai and websites that opens a popup when clicked on login with Google, etc. I see Blocked by browser? error. Along with these:
[Report Only] Refused to frame 'https://www.google.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".
[GSI_LOGGER]: Failed to open popup window on url: https://accounts.google.com/o/oauth2/v2/auth?gsiwebsdk=3&client_id=1062961139910-l2m55cb9h51u5cuc9c56eb3fevouidh9.apps.googleusercontent.com&scope=openid%20profile%20email&redirect_uri=storagerelay%3A%2F%2Fhttps%2Fclaude.ai%3Fid%3Dauth46631&prompt=consent&access_type=offline&response_type=code&include_g
r

It might require CSP etc configuration in the browser, but how and where does these go in the codebase?
Main process yes!
But I want to make sure all the sites oauth popups to be shown in this browser.
I have tried to add:
const handleNewWindow = (event) => {
        console.log(`Attempting to open new window: ${event.url}`);
        // Option 1: Open in external browser
        // shell.openExternal(event.url);
        // Option 2: Open in a new BrowserWindow within Electron

        let newWindow = new BrowserWindow({
          width: 800,
          height: 600,
          webPreferences: {
            preload: `file://${preloadPath}`,
            nodeIntegration: false,
            contextIsolation: true,
            allowpopups // **Allow popups**
          },
        });
        newWindow.loadURL(event.url);
      };

in the webviewcomponent but it didn't work.
I tried to set custom agent header in the ipc handler:
mainWindow.webContents.session.webRequest.onBeforeSendHeaders((details, callback) => {
      details.requestHeaders['User-Agent'] =
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36';

and tried to manipulate during onHeadersRecieved()
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
      const responseHeaders = Object.assign({}, details.responseHeaders);

      // Set CSP to the one defined for the service
    /* if (csp) {
      responseHeaders['Content-Security-Policy'] = [csp];
    }
     */
       // Modify CSP to allow necessary domains
      responseHeaders['Content-Security-Policy'] = [
        responseHeaders['content-security-policy'] || responseHeaders['Content-Security-Policy']
          ? responseHeaders['content-security-policy'][0]
            .replace("img-src 'self'", "img-src * data: https://lh3.googleusercontent.com https://www.gstatic.com https://www.google.com")
            .replace("font-src 'self'", "font-src * data: https://ssl.gstatic.com https://fonts.gstatic.com")
            .replace("script-src 'self'", "script-src * 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.gstatic.com https://apis.google.com https://www.google.com https://ssl.gstatic.com")
          : "default-src * 'unsafe-inline' 'unsafe-eval' 'self' https://gemini.google.com https://ssl.gstatic.com https://www.google.com https://apis.google.com"
      ];

      // Add necessary CORS headers dynamically
      if (!responseHeaders['Access-Control-Allow-Origin']) {
        responseHeaders['Access-Control-Allow-Origin'] = ['*'];
        responseHeaders['Access-Control-Allow-Methods'] = ['GET, POST, PUT, DELETE, OPTIONS'];
        responseHeaders['Access-Control-Allow-Headers'] = ['Origin, X-Requested-With, Content-Type, Accept'];
      }

      // callback({ responseHeaders });
      callback({
        responseHeaders: {
          ...details.responseHeaders,
          'Content-Security-Policy': [csp], // Retain specific CSP for each service if provided
          'X-Frame-Options': ['ALLOWALL'], // Ensure services can be embedded
        },
      });
    });
  });

How do I acheive this where user can login to any website and use the sites as in a normal browser?

Hey @praveentrigent, thank you for your kind words! I am glad you have found this project helpful in developing your own application.
Unfortunately, Google and other authentication providers do not allow for this. (See "Guidance to developers affected by our effort to block less secure browsers and applications." by Google).
There's likely a way to maneuver around this, but it's unlikely to be something Google recommends. I don't have the bandwidth to resolve this issue, but you are welcome to contribute.
If you have a repo, I'd be happy to share some of my time to review your work.


Use "Endpoints" instead of "Domains"

Throughout - @fancyremarker @krallin @sandersonet @gib, thoughts welcome.

This will require changes to the support documentation.


Postgis datasource tests

We are missing coverage for postgis. We need at least basic coverage to add regression tests when bugs are fixed or add tests to ensure changes don't regress key postgis plugin behavior in mapnik.
Plan:

[ ] Add test/postgis.test.js and test/data/test_data.sql (copied from https://github.com/mapnik/test-data/blob/master/sql/table1.sql)
[ ] test/postgis.test.js will bootstrap loading a test database. We will expect that the system already has a postgis enabled template_postgis database, that we will use as a template. If a template_postgis does not exist, the tests will be skipped
[ ] Install postgis via mason package on travis, ensure tests are not skipped on travis by writing a separate script to ensure the test database is created.

getting done in #809 809


Issue with reloading ML in Firefox after Recompiling Extension

@danielgoldelman found a bug with the Google Cloud VM wherein old ML models would remain cached in Firefox when running crawls, causing location classifiers to fail when loading in a new .xpi of the extension. We should look for a way to consistently reset this to ensure the proper ML model is always being loaded.

And @danielgoldelman will document this somewhere (TBD) so that @dadak-dom and @natelevinson10 know what to do.

The major issue with loading in the ML should be fixed now, and crawls seem to be detecting location just fine. Will be linking a PR soon.


HTTP code 401

Expected behavior
I can create a new container by clicking "New" then clicking "Create" on a Docker image after I have successfully authenticated
Actual behavior
I get an error and cannot create a container (using "Redis" as an example)
Information about the Issue
(HTTP code 401) unexpected - {"message":"Get https://registry-1.docker.io/v2/library/redis/manifests/latest: unauthorized: incorrect username or password"}
Steps to reproduce the behavior

Login successfully via Docker Hub credentials
See following error: Could not fetch repository information from Docker Hub
Can successfully create Mongo image despite initial error
(HTTP code 401) unexpected - {"message":"Get https://registry-1.docker.io/v2/library/redis/manifests/latest: unauthorized: incorrect username or password"}
Cannot create any other images at all and get
(HTTP code 401) unexpected - {"message":"Get https://registry-1.docker.io/v2/library/redis/manifests/latest: unauthorized: incorrect username or password"}

Please try to login using your Docker ID (hub username) instead of your email. This should fix the issue.

Why is this closed? It is a bug. I had the same issue and signed in with Docker ID and it worked. But Kitematic says "e-mail or docker ID" in the text box, which should then be corrected, right?


Added support for zone temperature offsets using VirtTempOffsetHeat

This PR adds support for temperature offsets in the set_item_by_id VirtTempOffsetHeat call when the heater is running in auto mode (based on external or internal temperature sensor).
The value for the service call can be in the range of -7 to 7 so the value parameter was changed in the code from positive_float to float.
This works fine on a Genus One Net boiler.

Thanks!


"yabai -m window --focus stack.first" doesn't return error when there is no stack

I'm trying to define a keybinding (hyper + down key) that changes focus to the north window when there are no stacks and to the next window when in stacked mode:
rhyper - down : yabai -m window --focus stack.next || yabai -m window --focus stack.first || yabai -m window --focus south

this almost works. The problem is that when there is no stacks in my space yabai -m window --focus stack.next correctly gives an error code causing the next command to run but yabai -m window --focus stack.first happily runs with no errors even though there are no stacks. Is this a big?

Fixed on master.


OTR github https://github.com/ugurkart/OTR

#2

@fsaizwei Already merged. Thanks for your support!


[cmake] soci doesn't export the relative path of the include directory

Hi guys,
I'm vcpkg maintainer.
Today I tried to fix soci in vcpkg (microsoft/vcpkg#16369), but I received an issue about using soci[mysql]:
When using find_package(SOCI CONFIG), the soci header file path is not added to the generated cmake configuration file(SOCI.cmake/ SOCI-Debug.cmake/SOCI-Release.cmake). Also, the path of the soci backend mysql is not added.
I have tried to fix this issue downstream, please check the changes:
https://github.com/microsoft/vcpkg/pull/16369/files#diff-ec4e7a3492cdb5376be6a1443d0c04f742bc6bbf942371c7c46106af88d982eaR1
Thanks,
Jack

Sorry, I don't understand the initial problem. Who exactly is including "soci/mysql/soci-mysql.h"? I think it's supposed to be a private header, used only by SOCI itself.
If we want to make it public, your changes seem correct, but I'm not totally sure if we do.

Hi @vadz
soci-mysql.h needs to be included in order to create a connection.
See soci documentation section "Portability":
mysql (requires #include "soci-mysql.h")
and is used as:
session sql(mysql, "db=test user=root password='pwd'");
Thanks & Regards

Oops, I didn't think about this use case as I always use registered backends in my own code and so specify the backend in the connection string itself. But you're right, this should work if the docs show doing it like this.
Could you please make a PR with your changes, so that they can get tested by the CI? TIA!

@vadz We may need to modify soci_backend to add private and public target_include_directories / target_link_libraries.
My modification is only a workaround.

Sorry, but why not modify soci_backend to do it then? I.e. what is the problem with doing it like this?

@vadz Some backends depend on other libraries, some are private, and others are public.
We should only export public libraries to cmake configuration files.
So for soci_backend, we should distinguish between public libraries and private libraries.


Fix warning in PHP 7.4

ErrorException: "array_rand(): Array is empty" (EXCEPTION) in "plugins/BuilderTools.phar/src/czechpmdevs/buildertools/utils/StringToBlockDecoder" at line 73

Now using StringToBlockDecoder->isValid() as requested

I meant to use it before the iteration (Here's an example). This causes the same problem.


LocalCallExecutor and RemoteCallRequest generic over Hasher and NodeCodec

doesn't build

one thing that might be worth a try: just compiling blake2, twox and the trie functions into wasm and foregoing the extern stubs for them. it'll result in slower and bigger wasm for sure, but since we generally execute with the inbuilt native anyway that's probably not so important. it should make the code quite a lot cleaner.
we should also dispense with using RLP as the data serialisation format for the trienodes - it's overkill, especially if we compile into wasm.

we should also dispense with using RLP as the data serialisation format for the trienodes - it's overkill, especially if we compile into wasm.

The NodeCodec trait is meant to do that, but I think we would need to write one for our substrate-codec.

LocalCallExecutor shouldn't be generic over hash or node codec. The only parts of the code that are generic over trie type is within the runtime.

Externalities appears to be generic over hasher - why?

Next step is to expunge Keccak and RLP from the codebase!

lock and binaries again ;-)


Port test_asyncgen to Python 3.10

The loop parameter of asyncio.sleep(), deprecated in Python 3.8, has
been removed in Python 3.10. asyncio.sleep() gets implicitly the loop
in Python 3.10 and it is safe to do the same on Python 3.6:
https://docs.python.org/dev/whatsnew/3.10.html#changes-in-the-python-api

Oops, PR created on the master branch. I created PR #4044 on the 0.29.x branch instead.


Added "generateWithTimestamp()"

Hey @robinvdvleuten, a new PR. I needed to generate ULIDs for previous timestamps. So I've added a new named constructor for that purpose. Also added some docblocks and adjusted some tests.
The name of the method is up for discussion, I finally came up with generateWithTimestamp(), but let me know if you have something better.

@hvt thanks for your PR! I like the idea of having a way to construct an ULID from a timestamp. There is already the fromString() method, so I would prefer to have a method fromTimestamp() instead of generateWithTimestamp().

This PR is superseded by #25


Documentation is extremely poor

Please document clearly what you component is capable/not capable of doing. I had to basically find this issue to understand that you can pass arbitrary HTML as part of the message when displaying a notification: support router-link in toasts. The overall documentation is extremely poor and unorganized. Please take the time to add quality documentation (and diverse examples showing different use cases) so users don't need to dig in the code or issues to understand how your component is supposed to be used.

Hey @lliendo Sorry for getting you in trouble. first of all this package is not a component. it is a service.
https://github.com/shakee93/vue-toasted#methods
you can see it clearly says string or html
and also you can use $router.push via action which does the same. take a look at the doc with example here
https://github.com/shakee93/vue-toasted#actions--fire


Remove trailing comma in return object

One single trailing comma breaks Google's Closure Compiler

good find - i've merged this via 6a8e418 since it needs to be updated in a few places


Added ESLint and Ruby CI workflow

Fixes #
Describe the changes you have made in this PR -

Added contiguous integration workflows for frontend (Run eslint with reviewdog) and backend (Ruby).
Run eslint with reviewdog runs eslint with reviewdog on pull requests to improve code review experience.
Ruby workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby

Screenshots of the changes (If any) -
Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

Coverage remained the same at 84.751% when pulling b760842ed5f45ca808e8ef41bf414087d97fd845 on ShreyaPrasad1209:master into 79d3836ee3453f13557395d96e0e7f4bf2d16714 on CircuitVerse:master.


Update to Upstream

Material UI Commit Head 93ec209b41112bec76ba5fbd55cd7414541995d3

Updated to Material UI 4.2.1!

[x] Works on MacOS

[x] Works on Windows


DataFlow CloudBigtableIO leaks threads

We have a DataFlow job that's structurally very similar to the WordCount example, reading from pubsub, producing per X minute windowed counts that are written to CBT.
We're using 0.2.3-SNAPSHOT of bigtable-hbase-dataflow and bigtable-hbase-1.1 in order to work around https://github.com/GoogleCloudPlatform/cloud-bigtable-client/issues/613.
When deploying our job late last week we discovered that it was failing with the DF workers unable to create more threads.
java.lang.OutOfMemoryError: unable to create new native thread
	at java.lang.Thread.start0(Native Method)
	at java.lang.Thread.start(Thread.java:714)
	at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:950)
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1368)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
	at com.google.cloud.bigtable.hbase.BigtableBufferedMutator.initializeAsyncMutators(BigtableBufferedMutator.java:206)
	at com.google.cloud.bigtable.hbase.BigtableBufferedMutator.<init>(BigtableBufferedMutator.java:201)
	at com.google.cloud.bigtable.hbase.BigtableBufferedMutator.<init>(BigtableBufferedMutator.java:174)
	at org.apache.hadoop.hbase.client.AbstractBigtableConnection$2.<init>(AbstractBigtableConnection.java:193)
	at org.apache.hadoop.hbase.client.AbstractBigtableConnection.getBufferedMutator(AbstractBigtableConnection.java:192)
	at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableWriteFn.getBufferedMutator(CloudBigtableIO.java:615)
	at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableWriteFn.processElement(CloudBigtableIO.java:640)

We SSH'd to one of the DF worker hosts and saw that the worker JVM process had some 32k+ threads. We attempted to redeploy our job a few times, each time hitting the same issue.
The same job deployed the week before had functioned normally so we figured that maybe this issue was caused by some recent change to the CBT client and redeployed our job with an earlier CBT client commit (6cefa8195724eefc2a58428597e68ccdb9513482) instead, which works fine.
Looking at the recent commit log I wonder if maybe 1433a527a192694b13862776500576e73126219b could be related to this.
We have not attempted to repro outside DataFlow.

#626 is definitely related to this.  The Dataflow PubSub setup is extremely tricky to get right.  They create a boat load of CloudBigtableSingleTableWriteFn's, each with its own buffered mutator. Apparently, there are also cases where the WriteFn will not be cleaned up by dataflow.
I'll work on this ASAP.

I was hoping to finish everything by EOD today, but I still have a couple of things to do.  I fixed some of the issues.  #635 should be a decent bandaid, for now.

I just deployed a new snapshot with a boat load of changes linked fro this issue.  Can you please take it for a test drive?

Took the current 0.2.3-SNAPSHOT for a spin and things look a lot better. Thread count is high at ~7k but doesn't seem to be growing.
Did a jstack of the DF worker java process. Here's a rough breakdown of the thread counts:

3600 bigtable-connection-shared-executor-poolY-tX threads
1800 bigtable-grpc-elg-X threads
2100 reconnection-async-close-X threads
~300 threads blocking on loading hbase/bigtable configuration, all with the below stack trace:

"Thread-313" #350 daemon prio=1 os_prio=0 tid=0x00007f93482b7000 nid=0x193 waiting for monitor entry [0x00007f920a7e3000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at java.util.zip.ZipFile.getEntry(ZipFile.java:308)
	- waiting to lock <0x0000000083309e70> (a java.util.jar.JarFile)
	at java.util.jar.JarFile.getEntry(JarFile.java:240)
	at java.util.jar.JarFile.getJarEntry(JarFile.java:223)
	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1005)
	at sun.misc.URLClassPath$JarLoader.findResource(URLClassPath.java:983)
	at sun.misc.URLClassPath$1.next(URLClassPath.java:240)
	at sun.misc.URLClassPath$1.hasMoreElements(URLClassPath.java:250)
	at java.net.URLClassLoader$3$1.run(URLClassLoader.java:601)
	at java.net.URLClassLoader$3$1.run(URLClassLoader.java:599)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader$3.next(URLClassLoader.java:598)
	at java.net.URLClassLoader$3.hasMoreElements(URLClassLoader.java:623)
	at sun.misc.CompoundEnumeration.next(CompoundEnumeration.java:45)
	at sun.misc.CompoundEnumeration.hasMoreElements(CompoundEnumeration.java:54)
	at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:354)
	at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393)
	at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474)
	at javax.xml.parsers.FactoryFinder$1.run(FactoryFinder.java:293)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:289)
	at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267)
	at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:120)
	at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2218)
	at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2195)
	at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2112)
	- locked <0x00000007145de8c8> (a org.apache.hadoop.conf.Configuration)
	at org.apache.hadoop.conf.Configuration.set(Configuration.java:989)
	at org.apache.hadoop.conf.Configuration.set(Configuration.java:961)
	at com.google.cloud.bigtable.dataflow.CloudBigtableConfiguration.toHBaseConfig(CloudBigtableConfiguration.java:182)
	at com.google.cloud.bigtable.dataflow.AbstractCloudBigtableTableDoFn.getConnection(AbstractCloudBigtableTableDoFn.java:49)
	- eliminated <0x00000007145dba80> (a com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableWriteFn)
	at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableWriteFn.getBufferedMutator(CloudBigtableIO.java:615)
	- locked <0x00000007145dba80> (a com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableWriteFn)
	at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableWriteFn.processElement(CloudBigtableIO.java:640)
	at com.google.cloud.dataflow.sdk.util.DoFnRunner.invokeProcessElement(DoFnRunner.java:189)
	at com.google.cloud.dataflow.sdk.util.DoFnRunner.processElement(DoFnRunner.java:171)
...

That's a lot of connections.  We have 2 reconnection-async-close threads per connection.  It's not good that you have over 1,000 opened connections at once.  I did some work to reduce the number of Connections to 1 for writes.  I see you're doing writes, are you also doing reads?  Do you open your own Connections?

I'll see if I can fix the Configuration issue.  We shouldn't be reading xml files from Dataflow.

We're only doing writes, applying a CloudBigtableIO.writeToTable(cbtConfig) to a PCollection<Mutation> of Put operations, pretty much exactly like in this example. We're not opening our own connections.

Thanks for your patience with this.  I just built a -SNAPSHOT that should fix the issue related to this problem:
   java.lang.Thread.State: BLOCKED (on object monitor)
    at java.util.zip.ZipFile.getEntry(ZipFile.java:308)
    - waiting to lock <0x0000000083309e70> (a java.util.jar.JarFile)
    at java.util.jar.JarFile.getEntry(JarFile.java:240)
    at java.util.jar.JarFile.getJarEntry(JarFile.java:223)
    at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1005)
   ...

I'm not sure why we're creating so many connections.  I'd like to figure out why that's happening.
In the meantime, I'll put in a fix to share threading resources across connections, since the thread pools auto-expand anyway.

Are you able to reproduce the issue of many connections being created?

Other users were able to reproduce the problem in dataflow with a pub-sub source.  I have not tried that specific scenario yet.  I'm working with a test that creates a whole bunch of Connections to see the effects.  We have some performance testing as well with a lot of connections.  I think that I'm going to address the underlying issues first, and then look at the Dataflow components.
Do you have any objections to that?

Sounds good to me :+1:

This was fixed a while ago.  CLosing.


improv: don't copy superpowers.json

The setup command leaves the superpowers.json file in a user's project, but as far as I can tell it's not needed anymore after setup (please correct me if I'm wrong!). We can simplify the logic a bit by taking advantage of esbuild's processing of JSON files into JS objects and keep the user's project a little cleaner: https://esbuild.github.io/content-types/#json.

@tjoar you are right. It does not need to be copied over


jpsxdec: 1.06 -> 2.0, make deretministic, clean up

Description of changes
This PR bumps the version of jpsxdec to 2.0
Because of this the .patch could be removed.
Also, the unoconv dependency could be removed (they did the conversion upstream)
Other things changed:

don't supply jdk8 from all-packages.nix, instead specify inside derivation
remove let in block from the beginning
use finalAttrs instead of rec
use hash instead of sha256
use canonicalize-jars-hook (related issue: https://github.com/NixOS/nixpkgs/issues/278518)
remove buildInputs
change file destination from $out/jpsxdec to $out/share/jpsxdec
use sourceRoot instead of doing cd at the start
use copyDesktopItems with makeDesktopItem
don't copy the .exe file from inside the release directory
use install instead of cp with mkdir where possible
set meta.changelog and meta.mainProgram

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

deretministic -> deterministic


Update 1-SimulatePurdueNetwork.md

import_acr.sh imports the module as azureiotedge-simulated-temperature-sensor:latest. Using a 1.0 tag causes the following error:
Mar 12 21:52:13 L3-edge aziot-edged[32320]: 2021-03-12T21:52:13Z [INFO] - Pulling image via tag <IP_ADDRESS>:443/azureiotedge-simulated-temperature-sensor:1.0...
Mar 12 21:52:14 L3-edge aziot-edged[32320]: 2021-03-12T21:52:14Z [WARN] - Could not pull image <IP_ADDRESS>:443/azureiotedge-simulated-temperature-sensor:1.0
Mar 12 21:52:14 L3-edge aziot-edged[32320]: 2021-03-12T21:52:14Z [WARN] -         caused by: manifest for <IP_ADDRESS>:443/azureiotedge-simulated-temperature-sensor:1.0 not found: manifest unknown:

Thanks a lot for bringing this to my attention @khilscher ! Instead of fixing the doc, i ve fixed the import command to import the 1.0 tag instead of the latest tag so that the defautl settings from the marketplace can still work. See PR #28 . Thus closing this PR.


[BUG] WhenAnyValue might not send latest value

Describe the bug
If a subscription is started for changes on a property using WhenAnyValue and the property is updated on another thread at approximately the same time, WhenAnyValue might send the old value as the initial value in the observable sequence and not send the updated value at all.
Steps To Reproduce
Let one thread update a property and set up a subscription on changes for it from another. This unit test illustrates the problem. It passes most of the times, but if repeated often enough it will eventually fail. The value of anyReactiveObject.Value will be 2 but no call to the subscription is emitted.
´´´
private class SomeReactiveObject : ReactiveObject
{
private int value;
    public int Value
    {
        get => value;
        set => this.RaiseAndSetIfChanged(ref this.value, value);
    }
}

[Test]
[Repeat(10000)]
public async Task WhenAnyShouldBeThreadSafe()
{
    var anyReactiveObject = new SomeReactiveObject { Value = 1 };
    var task = Task.Run(() => anyReactiveObject.Value = 2);
    bool found = false;
    anyReactiveObject.WhenAnyValue(x => x.Value)
        .Where(v => v == 2).Subscribe(_ => found = true);
    await task;
    Assert.That(found);
}

´´´
Expected behaviour
The test above should pass.
In a multithreaded environment, events may occur out of order, or if updates are very frequent some intermediate values might be missed, but the latest value should always be emitted to the pipeline.
Environment

OS:  Windows 10
Device:  PC
ReactiveUI Version:  16.2.6

Isn't this just a standard race condition?
Both threads are running in parallel and nothing is stopping the subscription from being setup before the Task has completed.

If the task completes before the subscription is setup, WhenAnyValue emits 2 and the test passes.
If the subscription is setup before the task starts to execute WhenAnyValue will emit first 1 and then 2 and the test passes.
If the task is executed at the same time as the subscription is setup, sometimes WhenAnyValue emits only the value 1 but the property's value is 2. This causes the test to fail.

There's a race condition in your Code. The task will start immediately which may or may not be before the WhenAnyValue is registered.
Try converting your task into a Func and making it into a function you call after the WhenAnyValue is registered and then await that.

@glennawatson I tested this code:
public MainWindowViewModel()
{
    var i = 1000;
    do
    {
        i--;
        WhenAnyShouldBeThreadSafe();
    } while (i > 0);
}

public void WhenAnyShouldBeThreadSafe()
{
    var anyReactiveObject = new SomeReactiveObject { Value = 1 };
    Task.Run(() => anyReactiveObject.Value = 2);
    anyReactiveObject.WhenAnyValue(x => x.Value)
        .Subscribe(x =>
        {
            if (anyReactiveObject.Value is 1) Debug.WriteLine(anyReactiveObject.Value);
        });
    }
}

public class SomeReactiveObject : ReactiveObject
{
    public int Value
    {
        get => value;
        set => this.RaiseAndSetIfChanged(ref this.value, value);
    }

    private int value;
}

In theory 1 should never be written to debug out because the subscription is always made after  var anyReactiveObject = new SomeReactiveObject { Value = 1 };. However, in the 1000 runs it does show up multiple times for me...

Task.Run(() => anyReactiveObject.Value = 2); // This can run or not run before the WhenAnyValue happens, use a Func<Task>
anyReactiveObject.WhenAnyValue(x => x.Value)
.Subscribe(x =>
{
if (anyReactiveObject.Value is 1) Debug.WriteLine(anyReactiveObject.Value);
});

@glennawatson Without Task.Run(() => anyReactiveObject.Value = 2); the observable / subscription should never fire because it happens after the value is assigned here var anyReactiveObject = new SomeReactiveObject { Value = 1 };, correct?
That would mean Value = 1 should never show up in the observable / subscription (be sent to debug out), or am I missing something?

Func<Task> myFancyValueChanger = () => Task.Run(() => ....
something.WhenAnyValue(x => ....
await myFancyValueChanger.Invoke();

@glennawatson
Ignoring all of the code above - from my understanding, just these 2 lines of code should never fire the subscription, correct?
anyReactiveObject.Value = 1;
anyReactiveObject.WhenAnyValue(x => x.Value).Subscribe(x => Debug.WriteLine(anyReactiveObject.Value));

So value = 1 should never show up in the debug output.
This code however will very seldomly show 1 in the debug output:
anyReactiveObject.Value = 1;
Task.Run(() => anyReactiveObject.Value = 2);
anyReactiveObject.WhenAnyValue(x => x.Value).Subscribe(x => Debug.WriteLine(anyReactiveObject.Value));

I can't reason as to why 1 should ever show up, but it does.

You don't control when Task.Run runs, it's up to the task scheduler

@glennawatson
I understand there is a race condition happening.
In this race condition there should be two scenarios:

Value is set to 2 BEFORE the subscription is setup, so the subscription is called printing 2 to the output
Value is set to 2 AFTER the subscription is setup, so nothing is printed to the output

There should be no scenario 3:

Value is set to 2 BEFORE the subscription is setup, the subscription prints 1 to the output

But that 3rd scenario does indeed occur 5-10 times out of 1000.
@RLittlesII Can you sanity check me here?

WhenAnyValue always emits the current initial value of the Property unless you do a Skip(1)

Scenario 3 can happen

Initial Value is 1
Task sets value to 2
WhenAnyValue grabs initial value of property and emits 2

@kmgallahan

There should be no scenario 3:

Value is set to 2 AFTER the subscription is setup, the subscription prints 1 to the output
But that 3rd scenario does indeed occur 5-10 times out of 1000.

The fact you are using Task.Run by definition means you are not in control of when it is set.  Asynchronous code does not happen where you write the line of code.  It happens at some point in the future.

Sorry guys, didn't know it emitted the initial value on setup, please forget I ever existed, lol
I checked the docs here when I first saw this issue and it only mentions things like this for a while:

This returns an observable that yields the current value of Foo each time it changes:

You can Subscribe to the observable returned by the WhenAny variant and get notifications whenever the value changes.

Funny thing is I've been using it for months now...

I was just reading the docs so I could link you to them and thought the fact they emit the initial value wasn't very well described. If I get time I'll make it more obvious today.

FYI https://github.com/reactiveui/website/pull/745

@glennawatson
Thanks for the quick update.
I remember now why I assumed the initial value wasn't emitted for months - the IntelliSense descriptions read:

WhenAnyValue allows you to observe whenever the value of a property on an object has changed, providing an initial value when the Observable is set up

Yet during my first tests that seemed to not be happening, so I just thought: ¯\_(ツ)_/¯ I guess the docs are wrong.
Now I realize I must have only been testing it where the initial values were null, which is a significant gotcha.
I'd suggest that text be updated as well.

@glennawatson There is no race condition between setting the value to 1 and 2. There is a race condition between setting the value to 2 and setting up the subscription; that's the whole point of the test. To make the simplest possible code where some property is updated on another thread at the same time as a subscription is started. If the update occurs first, 2 should be emitted as the initial value. If the subscription is set up first 1 should be emitted as the initial value and 2 as an updated value. What causes the test to fail is that 2 is not emitted at all. If you close this bug saying that this is expected behavior you should really update the documentation to say that reactive UI should not be used for multi threaded applications.

3 lines of code:

Set Value = 1 on Thread A
Run Task to set Value = 2 on a Thread B
Subscribe on Thread A and print Value to debug

The race condition is that nothing prevents code line 3 from running before code line 2, they are separate threads.
If line 3 runs before line 2, then Value is still equal to 1 at the time the subscription is setup.

It is actually 5 lines of code:

Set Value = 1 on Thread A
Run Task to set Value = 2 on a Thread B
Subscribe on Thread A and check if value is 2
Await the task started in step 2 so that we know that the value has been set to 2 before continuing to step 5. Since no other code is updating the value, it must be equal to 2 now.
Assert to check if Value has ever been 2. Assert fails (sometimes)

I don't care about the order things are happening and I don't care if I ever receive the value 1. I am subscribing to the initial value and every future updates on it, the subscription is still active, the value is currently 2 and the PropertyChanged event handler has finished executing, so I expect to have received the value 2 at some point on some thread.

I know how await and Task.Run works. When await task returns I know that the task has completed, that is what is important here. I want the task and setting up the subscription to be run in parallel in this test since that is what is triggering the error. In my real application it is a completely different part of the code running on a different thread updating the value. This is just a very simple example of reproducing the behavior of a multi threaded application where my WhenAnyValue subscriptions does not trigger if the value is updated at the same time as the subscription is set up.

That is not the issue. The problem is that the value 2 is never emitted. I can change the bool to an int, increment it with Interlocked.Increment in the subscription and add a memory barrier before my assert, it is still the same error. The lambda passed to subscribe is simply never executed.

The problem is that the value 2 is never emitted.
The lambda passed to subscribe is simply never executed.

I have no idea what you are talking about now. If the lamba didn't execute then why does this print to console?
anyReactiveObject.WhenAnyValue(x => x.Value).Where(v => v == 2).Subscribe(_ => Debug.WriteLine("Hello World!"));

@erikm-g Have you considered using Synchronize to ensure that the observables from multiple threads are received correctly?

You may think there are cases where the lamba isn't being executed because the Assert shows found is false.
Each one of those cases is because bool isn't thread safe. Yes, when you Assert.That(found); the task has completed, but if the bool was set to true in the lambda on a different thread then it may or may not be true on the original thread at the time of the assertion - it isn't thread safe so this isn't a deterministic check.

Also, in your original codebase initial values won't be emitted (the lamba won't be executed) if you use WhenAnyValue(x.y.z).Subscribe and x or y is null at the time of the subscription. That may be throwing you off as well.


Create a global.js file to contain common functions like sign in/out, etc.

This is fixed with updates in #56


Setup reach

Proposed Changes

add jobs to set up reach in /infrastructure

Potential followups

executing (compile/run) scripts written in reach

Please update the change log


Move the 'free text' search up to a more prominent part of the main scicat page

Issue Name
Move the 'free text' search up to a more prominent part of the main scicat page
Summary
This is so that the box can be wider to allow more information to be displayed and entered, and so that the search is highlighted as a larger part of the process.

Transferred to frontend issue #1147


Update services.md

Fixes https://github.com/dotnet/AspNetCore.Docs/issues/22645

Thanks @glmnet! :rocket:


[Execute] Introduce DeviceViewNode by device type

This commit introduces DeviceViewNode by device type.
ONE-vscode-DCO-1.0-Signed-off-by: Jiyoung Yun<EMAIL_ADDRESS>

This PR works normally only when #1660 and #1661 PRs are merged together.


client.create api docs wrong

The README states that client.create has this API
client.create(filter, callback)
in actuality, it has this API
client.create(filter, options callback)

It probably makes sense to do a check to see if the 2nd argument is a function, and if it is, treat it as a callback


How can I check scripts written for different versions of Python

Currently I found the syntax checking is for python2, but I want for python3. Thanks in advance.

I solve it by replacing
let g:syntastic_python_checkers=['python', 'flake8']
to
let g:syntastic_python_checkers=['python3', 'flake8']
in my .vimrc file.

Recommend used file ~/.vimrc.local you personal config

@ning05130513 When you use virtualenv with flake8 installed inside that, it will be recognized automatically.