fix(ci): only use cached state disks with the same state version

Motivation
This PR implements the exact state version search from ticket #4153.
Designs
As specified in #4153:
We want to re-use the cached state from any branch, as long as:

the state version is the same, and
the state kind is the same (checkpoint or tip, and zebra or lwd)

If there is a state with that version on main, and on another branch, use the one from main.
Solution

Only use cached state disks with the exact same state version
Prefer main branch disks to disks generated from other branches

Related changes:

Standardise the environmental variable names
Provide a network input default

Delete a redundant NETWORK environmental variable
Temporarily allow disk names with and without network names

Review
@gustavovalverde can review this PR, it blocks PR #4268.
Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

Follow Up Work

PR #4385
Require network names in disk names

@gustavovalverde this should be ready for review again.

This seems like a temporary error:
DEBUG: Running [gcloud.compute.images.list] with arguments: [--filter: "name~zebrad-cache-main-[0-9a-f]+-v23-[a-z]*-tip", --format: "value(NAME)", --limit: "1", --sort-by: "['~creationTimestamp']", --verbosity: "debug"]
INFO: Using alternate credentials from file: [/home/runner/work/zebra/zebra/gha-creds-051a2ecc8e644c40.json]
DEBUG: Making request: GET https://pipelines.actions.githubusercontent.com/iLo8c1TT59QRZKeUa4bO5aBdMPTRIlKlqwBwOSus1iy4D4L9OS/00000000-0000-0000-0000-000000000000/_apis/distributedtask/hubs/Actions/plans/2a23237e-73ad-44ff-b003-2c9186437334/jobs/2a7c6e0e-fd91-5438-3768-d0d95fb2509a/idtoken?api-version=2.0&audience=https%3A%2F%2Fiam.googleapis.com%2Fprojects%2F143793276228%2Flocations%2Fglobal%2FworkloadIdentityPools%2Fgithub-actions%2Fproviders%2Fgithub-oidc
DEBUG: Starting new HTTPS connection (1): pipelines.actions.githubusercontent.com:443
DEBUG: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
https://github.com/ZcashFoundation/zebra/runs/6415951916?check_suite_focus=true#step:6:267


Cannot find "Download All Logs" button for pod logs

I'm using Lens v.5.3.4. I would like to download(or search) entire pod log but Lens can only download logs that is retrieved on the screen. So I have not choice but to scroll up to top of the logs manually.
On #1722, it says Lens has "Download All Logs" button for pod logs but I couldn't find it.
Could you help me navigate to "Download All Logs" or retrieve all available logs at once?

With latest version of Lens: 5.4.6-latest.20220428.1 on MacOS Monterey still an issue, can't find the button to download the full log of a pod.


Updating introduction page with normalisation information

Description
Addition of some information on normalisers onto the index page for Text analysis
Issues Resolved
Addresses part of https://github.com/opensearch-project/documentation-website/issues/1483
Version
all
Frontend features
n/a
Checklist

[x] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@leanneeliatra Please fix DCO when you have time. Thanks!

@udabhas Please review and approve for technical accuracy. Thank you.

@leanneeliatra @vagimeli Just a few changes. Thanks!

Thanks Nate they have been addressed & merged

@vagimeli I accidentally closed this PR. Reopening.
The comments from the editorial review have been addressed and merged and the PR has been reviewed.
This PR is now ready for the next step/closing as per @vagimeli instructions.


intero failing on recent nixos

intero seems to be trying to open a non-existent file:
 stack ghci --with-ghc intero
ekg-elastic-<IP_ADDRESS>: initial-build-steps (lib)
Log files have been written to: /home/ben/dev/haskell/ekg-elastic/.stack-work/logs/
Configuring GHCi with the following packages: ekg-elastic, ekg-statsd-examples
Using main module: 1. Package `ekg-statsd-examples' component exe:ekg-statsd-examples with main-is file: /home/ben/dev/haskell/ekg-elastic/examples/Basic.hs
/nix/store/pr3ci5qwv1fgwgpvw4mzwkbv18906r8i-ghc-8.0.2-with-packages/lib/ghc-8.0.2export/settings: openFile: does not exist (No such file or directory)

If I get rid of the export in there there is a settings file:
ls -la /nix/store/pr3ci5qwv1fgwgpvw4mzwkbv18906r8i-ghc-8.0.2-with-packages/lib/ghc-8.0.2/settings
lrwxrwxrwx 4 root root 76 Jan  1  1970 /nix/store/pr3ci5qwv1fgwgpvw4mzwkbv18906r8i-ghc-8.0.2-with-packages/lib/ghc-8.0.2/settings -> /nix/store/dz4vpj27nza9jv96b1jdpxjghscwzgps-ghc-8.0.2/lib/ghc-8.0.2/settings
ben@office:~/dev/haskell/ekg-elastic|master⚡
⇒  cat /nix/store/pr3ci5qwv1fgwgpvw4mzwkbv18906r8i-ghc-8.0.2-with-packages/lib/ghc-8.0.2/settings
[("GCC extra via C opts", " -fwrapv -fno-builtin"),
 ("C compiler command", "/nix/store/7x4my0kkxvpailqa636g6cf69w3xjjdf-gcc-wrapper-5.4.0/bin/cc"),
 ("C compiler flags", " -fno-stack-protector"),
 ("C compiler link flags", ""),
 ("C compiler supports -no-pie", "NO"),
 ("Haskell CPP command","/nix/store/7x4my0kkxvpailqa636g6cf69w3xjjdf-gcc-wrapper-5.4.0/bin/cc"),
 ("Haskell CPP flags","-E -undef -traditional"),
 ("ld command", "/nix/store/7x4my0kkxvpailqa636g6cf69w3xjjdf-gcc-wrapper-5.4.0/bin/ld"),
 ("ld flags", ""),
 ("ld supports compact unwind", "YES"),
 ("ld supports build-id", "YES"),
 ("ld supports filelist", "NO"),
 ("ld is GNU ld", "YES"),
 ("ar command", "/nix/store/k8c23rwbrril65rmm7z1036h2makk012-binutils-2.28/bin/ar"),
 ("ar flags", "q"),
 ("ar supports at file", "YES"),
 ("touch command", "touch"),
 ("dllwrap command", "/bin/false"),
 ("windres command", "/bin/false"),
 ("libtool command", "libtool"),
 ("perl command", "/nix/store/hcdlnpbyn78lskhx28s5fg6k0h6c9g29-perl-5.22.2/bin/perl"),
 ("cross compiling", "NO"),
 ("target os", "OSLinux"),
 ("target arch", "ArchX86_64"),
 ("target word size", "8"),
 ("target has GNU nonexec stack", "True"),
 ("target has .ident directive", "True"),
 ("target has subsections via symbols", "False"),
 ("Unregisterised", "NO"),
 ("LLVM llc command", "llc"),
 ("LLVM opt command", "opt")
 ]

A bug in path construction perhaps?
Probably related to #341

Nix never works.


fix(create): ignore node_modules in example copy

Current dependencies on/for this PR:

main

PR #69

PR #70

PR #72
PR #71

PR #73

PR #74

PR #75

PR #76

PR #77

@pevisscher queued this pull request to merge with Graphite.

@pevisscher merged this pull request with Graphite.


feature example card sizes

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

Screens:

before:

After 1:

After 2:

After 3:

@aayush-05 @nitin10s
Please review changes.

Coverage decreased (-47.2%) to 36.931% when pulling c2489e76f791565fd60fba533f9cd89435fc8fe4 on abstrekt:div_size into bc89cead0b643d42eb6c38010b69c2bee52b4fa1 on CircuitVerse:master.

Please let me know how to reproduce the screenshot After 3 situation?

Please let me know how to reproduce the screenshot After 3 situation?

It is working well @abstrekt for a normal page. While when we resize the page of zoom in then the cards size remain normal for the fit titles. The longer titles push the view button down breaking the div which looks weird. Please look at the screenshot.

Idk why it's like this in other browsers, works fine in firefox, but still I have added a hot fix for the same hoping these examples won't change.

Won't truncating text the most viable option for this @abstrekt ?

We would be redoing the feature section (requires some discussion), maybe you can close this @abstrekt

We would be redoing the feature section (requires some discussion), maybe you can close this @abstrekt

sure think!


[FetchRequest] getFetchRequest doesn't allow undefined baseUrl

At the moment, although it is not typed as required, getFetchRequest requires a baseUrl in its options argument : providing an empty object for options results in the following error : Failed to construct 'URL': Invalid URL.
This is because getFetchRequest creates a new URL and provide it to the fetchFunction. In the absence of the baseUrl option, it should only call the fetchFunction with the contract path as first parameter (the fetchFunction will then be responsible of adding the baseUrl).
Also, the options argument is always required in getFetchRequest. It could be optional and set to an empty object by default if no option is required.

Hello @Thomasprelot, thanks for opening this. Indeed this seems more logical. Is the baseUrl argument event relevant here? It seems to me that it could be directly passed in the fetch function, WDYT?

Good point, it seems more logical that the fetch function keeps the responsibility of the baseUrl.
However it might still be relevant to keep it in case we have no other need to use a custom fetch function, or in case we need to use multiple baseUrls.


Quark

Description of the change
Adds terraform files for secondary cluster on oracle free tier, which will then be bootstrapped via the flux terraform provider. The details still need to be ironed out including but not limited to

Remote State for Terraform
OCI Provisioning Details
CNI
Bridge gateway

Benefits

Possible drawbacks

Applicable issues

fixes #

Additional information

Remote State will be managed with Terraform Cloud for now. They have a free tier

Will be part of #2218

Some modifications will be required for integrating into what should really be a milestone.
Note to future self: This covers the provisioning of oci infrastructure with oke and spits out a kubeconfig. Next it will need to bootstrap flux and other operators.


Version

Description

Display ParallelCluster API version in the top bar. This helps customers identify the version that PCM is deployed with and allows them to easily see which clusters they can update.
Changes

Display ParallelCluster API version in the top bar

Changelog entry

Display ParallelCluster API version in the top bar

How Has This Been Tested?
Tested by deploying manually
References

PR Quality Checklist

[ ] I added tests to new or existing code
[ ] I removed hardcoded strings and used our i18n solution instead (see here)
[ ] I made sure no sensitive info gets logged at any time in the codebase (see here) (e.g. no user info or details, no stacktraces, etc.)
[ ] I checked that infrastructure/update_infrastructure.sh runs without any error
[ ] I checked that npm run build builds without any error
[ ] I checked that clusters are listed correctly
[ ] I checked that a new cluster can be created (config is produced and dry run passes)
[ ] I checked that login and logout work as expected

In order to increase the likelihood of your contribution being accepted, please make sure you have read both the Contributing Guidelines and the Project Guidelines
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @sean-smith,
while I understand the problem you're trying to solve with this this pull request, I don't think the solution implemented here fits very well in PCM and its future evolution because:

it's a piece of info that's not strictly required to be always visible, and it could be restricted to cluster creation or edit
placed in the TopBar it becomes a button, which shouldn't be in this case as it's a mere text info, with wrong accessibility hints

For these reasons I'm going to close this pull request. Feel free to engage with both the product and design team to discuss a proper solution for this problem.
Thank you


Same and Opposite sex Marriage outcome changes in Dominican Republic

Pivotal Tracker: https://www.pivotaltracker.com/projects/1270592/stories/109437774

Replace contact details with appointment booking link same sex marriage.
Content Updates for Same sex outcomes
Changes to the fees table for Dominican Republic
Change to UK residents getting married in the Dominican Republic

Factcheck
Dominican Republic Factcheck
Expected Changes

Fact Check for Replace contact details with appointment booking link same sex marriage.

URL on GOV.UK

Before

After

Fact Check for Content Updates for Same sex outcomes

URL on GOV.UK

Before

After

Fact Check for Changes to the fees table for Dominican Republic
URL on GOV.UK

Before

After

Fact Check for Change to UK residents getting married in the Dominican Republic
URL on GOV.UK

Before

After

This PR supersedes  #2287

Currently you have the following commits:

Responses and expected results (Dominica Rep)
Generate regression test artefacts (Marriage abroad)
Regenerate checksum data (Marriage abroad)
Define Marriage outcomes for Dominican Republic
Regenerate regression test artefacts (Marriage abroad)
Regenerate checksum data (Marriage abroad)

This is what I would do differently:

Minor: I would prefer it if commits 1, 2 & 3 were combined into a single commit labelled something like "Add Dominican Republic path to regression test for Marriage Abroad".
More important: I would prefer if commit 4 was split multiple commits as follows:

A commit in which the country-specific outcome is introduced, but no changes to the artefacts are needed to pass the regression tests. The checksums could therefore also be updated in this commit.
One or more subsequent commits which make any necessary changes to the country-specific outcome.

I hope that all makes sense. I realise you're under time pressure for this, so I'm sorry to be suggesting more changes. I guess I'm still nervous about the size of the change in commit 4 i.e. a whole load of code has appeared seemingly from nowhere, so it's hard for me to say it's ok - especially given the size of commit 5.

I have fixup the previous commits 1,2,3

Cool. This is definitely better than #2287 from the point of view that you've generated the regression test artefacts for the Dominican Republic before making any changes. This makes it easier to see what's actually changed.
Given that you're under deadline pressure for this, I'm happy for it to be merged.


Basic text output doesn't seem to work

I'm trying to get some text on a path (without the use element as in #49) but even the really basic example below does not output any text in IE7 or IE 8...works fine (obviously) in Chrome and Firefox.
PS I'm new to D3 so it could be me being an idiot!
<!DOCTYPE html>

Here is the HTML generated:

Wavy text is the gimmick for many years to come (d3)<rvml:shape style="POSITION: absolute; FILTER: ; WIDTH: 1px; HEIGHT: 1px; TOP: 0px; CURSOR: auto; LEFT: 0px" class=rvml raphael="true" raphaelid="0" coordsize = "21600,21600" filled = "t" fillcolor = "black" stroked = "f" strokeweight = "1pt" path = " m0,0 l1,0 e"><rvml:stroke class=rvml opacity = ".75" miterlimit = "4" joinstyle = "miter" endcap = "flat"></rvml:stroke><rvml:textpath style="FONT: 400 10px 'Arial'; v-text-align: left; v-text-kern: true" class=rvml on = "t" string = "Wavy text is the gimmick for many years to come (d3)"></rvml:textpath><rvml:path class=rvml textpathok = "t"></rvml:path><rvml:skew class=rvml on = "t" matrix = "1,0,0,1,0,0" offset = "-.5,149.5"></rvml:skew><rvml:fill class=rvml type = "solid" opacity = "1"></rvml:fill></rvml:shape>

<svg style="DISPLAY: none" viewBox="0 0 500 300"><g transform="translate(0,150)"><text text="Wavy text is the gimmick for many years to come (d3)"></text></g></svg>

Hi there,
This project is no longer being maintained so this issue is being closed. Thank you for using r2d3 and taking the time to report this issue.


add: visibility to deprecation of unclustered agents message

This PR bolds the text for:

It is not be possible to create and work with unclustered agents for any new Buildkite organizations created after the official release of clusters on February 26, 2024.

I feel this is an important piece of information that may get skipped as it is part of the paragraph that describes the deprecation.

All good to go @HugeIRL ! Was just about to ask you to merge this when you're ready but you beat me to it ;-)


Add support stats test csv

This PR is the initial setup to test using the existing GitHub to Slack integration to send a daily update regarding support requests volume to the Operations Engineering team Slack channel.

added a new folder under services 'support_stats' for the .csv file
adds a test .csv file 'test_sr_export.csv'

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (d5028b2) 98.47% compared to head (3175405) 98.47%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4103   +/-   ##
=======================================
  Coverage   98.47%   98.47%
=======================================
  Files          43       43
  Lines        4068     4068
=======================================
  Hits         4006     4006
  Misses         62       62

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[Analyze] RichText json key re-appreared regardless translated in all locales in missing_translations...json file

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
0. Prequisite: 2 locales: en_US.json and vi_VN.json

Add a richtext key translation in en_US.json: "test_feature(rich)": "Test feature {name}"
Add a richtext key translation in vi_VN.json: "test_feature(rich)": "Tính năng thử nghiệm {name}"
Run missing analyze command: dart run slang analyze --split-missing
The key test_feature(rich): "Test feature {name}" is still appeared in file _missing_translations_vi_VN.json

Expected behavior
The key test_feature(rich): "Test feature {name}" is disappeared.
Actual behavior

Additional context
Add any other context about the problem here.

What's the reason this was closed? I have a similar problem, where keys with modifiers are duplicated after running dart run slang apply.
E.g.
// en
    "couponValidations(map)": {
      "CouponNotExist": "There is no box with this code",
      "CouponAlreadyUsed": "You have already claimed this box",
      "CouponLimitReached": "Too late! This box has no more claims available",
      "CouponExpired": "Too late! This box has expired"
    },
//fr
    "couponValidations(map)": {
      "CouponNotExist": "There is no box with this code",
      "CouponAlreadyUsed": "You have already claimed this box",
      "CouponLimitReached": "Too late! This box has no more claims available",
      "CouponExpired": "Too late! This box has expired"
    },
    "couponValidations": { <-- This object gets added after running `slang apply`
      "CouponNotExist": "There is no box with this code",
      "CouponAlreadyUsed": "You have already claimed this box",
      "CouponLimitReached": "Too late! This box has no more claims available",
      "CouponExpired": "Too late! This box has expired"
    }


wip: network: Wait till link is operationally up.

Although we set the link up with LinkSetup, this function
returns before the link is actually up.
Additionally, besides the admin state of a network link, we
also need to check if the link is operationally up.
Namely we need to check if the netlink attribute IFLA_OPERSTATE is set
to IF_OPER_UP.
Fixes #458
Signed-off-by: Archana Shinde<EMAIL_ADDRESS>

@mcastelino @egernst Before I go fix the unit tests, I would like your opinion on this PR.
So this fixes the issue that we were seeing with the interface being down when you execute
docker run --runtime=kata-runtime debian ip a
Adding trace logs, I saw that the netlink call to LinkSetup() does return true, but looks like this call does not really wait till the link is up. Also I realised that for the link to show as "up" in the output of ip a command, not only does IFF_UP be set in the link flags, but the also the link's IFLA_OPERSTATE state needs to be set as up.
We were actually running into the same scenario when running an actual terminal as well, its just that the delay in starting a shell and we actually typing command to show network interfaces masked the problem.
I have fixed the issue with adding some kind of mechanism to watch for the link state, so that we wait till the link is fully up(admin up and operational up). While just adding sleeps initially to guage the time it takes for the link to me up, I realised that it easily takes more that 500ms on my laptop for the link to be up. We would need to measure this, but yes this commit adds additional delays to our container start time.
What do you think?

@amshinde - can you run the metrics tests on your branch to get a measurement on boot time impact?

@egernst With just using time :)
With my changes :
$  time sudo docker run  --runtime kata-runtime  debian ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link tentative
       valid_lft forever preferred_lft forever

real    0m4.036s
user    0m0.036s
sys     0m0.038s

Without my changes :
$ time sudo docker run  --runtime kata-runtime  debian ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state DOWN group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever

real    0m3.444s
user    0m0.055s
sys     0m0.023s

/retest

wow that looks bad... half a second for the interface to be up and ready to be used. But I guess that's the way to go anyway since we want the container to be fully functional when the user can start interacting with it.

good lord, what system are you using?  3.5 seconds for the "good" result? :)

@egernst With just using time :)
With my changes :

@amshinde which network interworking mode are you using. tcfilter or macvtap

@amshinde which network interworking mode are you using. tcfilter or macvtap

@mcastelino I was using macvtap, but see similar behaviour with tcfilter as well.

@amshinde did you take the average over multiple runs? A single run can have a 25% difference, and the 'first run' may have significant difference due to warming things up etc.
I'd strongly recommend using the report generator, which will take 20 measurements, and show you some graphs that can help assess variance as well as compare the two runs. You can tell the grabdata.sh to only do a timing test by using its -t option, which will reduce the time to run the test a lot, and the report generation is all wrapped into a dockerfile so you don't have to install any extra tooling to process the results.

/me wonders if we can tell how long it took to get the network up... if so, we could add that to the report/tests...

Oh, and @amshinde - you might want to make sure you have a good entropy source as well - I just found one of my tests was pretty 'spiky', with a pretty often 1s leap in time to workload, and I think that was running out/waiting for entropy. Adding haveged to my system I think has cleared that. Watch out for that one ;-) (and, I think that is maybe why I have seen a number of spiky results graphs from users in the past... tricky that one.. maybe I can get the metrics to check and wait/timeout if entropy is not present...)

@amshinde have you been able to address the comments? Did you manage to get better results with proper entropy?

Just added do-not-merge label until we get better numbers, or until we decide those numbers are acceptable.

Ping @amshinde.

@jodh-intel @egernst  I did try doing a network access immediately after the container is up, it does not error out, just waits for the nework to be ready first.
So inclined to close this.


Orgs using D: Add Ecratum

resubmission of #1381
CC @llaine
@CyberShadow It seems we use 150x75 for the frontpage, but here we use 200x100. Sorry about that & corrected.

It's totally fine for me like this!

@wilzbach any news with this one. I would love to have the logo there. Plus I guess will be a blog post maybe for marketing :)

@wilzbach any news with this one. I would love to have the logo there.

I don't have merge rights here. Thanks @CyberShadow!
(it will now automatically be deployed in the next minutes)

Plus I guess will be a blog post maybe for marketing :)

I am looking forward too it :)

@wilzbach Thank you for this :tada: ! I notice that the link is broken also for the hiring ... http// instead of http:// do you think you can do a quick hot fix ? :)

Someone must have cursed this page with the curse of bad and broken links... https://github.com/dlang/dlang.org/pull/1419

btw @llaine the hiring link is thought to be for "D jobs" - I couldn't spot any open position there. I heard that you plan to transition parts of your infrastructure from Ruby to D, which is very nice to hear.
Do you plan to update your page once this is official? Otherwise it might be a bit confusing for D developers looking for jobs ;-)


Fix incorrect type hint in Neuralynx I/O module

An incorrect type hint sneaked in via #11969, causing confusion to static type checkers.
Since we don't use type hints in MNE yet (except for some very rare exceptions), I simply removed the faulty one instead of fixing it.
cc @KristijanArmeni
FYI the correct hint for our supported versions of Python would be Optional[List[str]] or Union[None, List[str]]

@larsoner I also think it's unusual that verbose isn't the last keyword in the function signature; and the last two parameters should probably be keyword-only. Thoughts?

Yes verbose should be last and kw-only (okay to change the exclude one, too). Can you make that change in this PR and I'll merge and backport? I think we can push out a 1.6.1 quickly to get the fix out there before the * annoys too many people :)

Can you take over please? I'm a bit busy with other stuff :)

@larsoner I rearranged the signature but didn't add a changelog entry yet

Thanks for cleaning things up, @larsoner!


Graphs of Site Analytics seems wrong when I sorted them by a specific language

This is a Bug Report

Problem:
Everything seemed fine when I accessed google site analytics and printed 1-year report of all languages.

However, graphs seemed wrong when I sorted them by a specific language, For example, Korean page view report:

This is a 1-year report & sorted by Chinese page view only:

This is a 1-year report & sorted by English page view only:

It seems like Google Analytics was not able to collect pageviews data gradually.
Also, I'm not sure if total Pageviews for each languages are correct either.
Could someone take a look on them?
Proposed Solution:
N/A
Page to Update:
https://datastudio.google.com/reporting/fede2672-b2fd-402a-91d2-7473bdb10f04

/triage accepted
/priority backlog


Cache settings?

After some testing it on kodi it plays fine. The only problem is that after some time it starts to be choppy because of buffer. Watching it on smart tv or with chrome it buffers it so it plays without problem. In addon it seems that it does not use any buffer.

@iLLiac4 Debug Log?

https://forum.kodi.tv/showthread.php?tid=298462&pid=2616747#pid2616747

Ok seems to be fixed. It works now also with 1037U.
I am still interested if this addon reads settings from kodi for buffering or. does it use its own settings.
TNX

@liberty-developer Can you shed some light on this? I don't know how exactly Inputstream does the buffering...

Some explanation can be found here: https://github.com/peak3d/inputstream.adaptive/issues/8


Secret token initiailizers hard-coded

Whoops... need to pull from Rails.application.secrets.secret_key_base.

This should be a two second fix, just getting it done.


We're currently processing too many requests

{"detail":{"message":"We're currently processing too many requests. Please try again later."}}: Something went wrong. Please re-launch or re-install this app.

@XuanNguyen12 This issue is not from the client but instead from the ChatGPT server. So here is no action that I can for resolving this issue.


feat: Add PaymentStatus method for checking payment status

Implemented PaymentStatus method to allow merchants to check the payment status using the merchantTransactionId.
This method takes merchantId, a unique random transaction ID, and the mode (UAT or PRODUCTION) as parameters.
Also, updated UAT_URL and PROD_URL for environment configuration.

Your code is not tested and have error so try for next time


ionic 4 BETA :  ion-searchbar, ion-toggle - not able to use ngModel

Support Question

in IONIC 4 - How do we do ngModel. NgModel on the following tags throws up the template error - No Provider for NgControl
ion-searchbar, ion-toggle
Can you please one of you help me
Please do not submit support requests or "How to" questions here. Instead, please use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/

In addition to the forum & slack channel, please see the conference app for an example app using the above components in v4.


proposal: Go 2: simplify error handling with try err == nil {} except {}

Premised on the expectation that people frequently want to execute a series of statements and check for errors after each statement but frequently want to respond to any error in the same way, we can construct a special statement block to execute these repeated checks for us.
Try statements
"Try" statements specify conditional transfer of control to an "except" clause based on repeated checks of a boolean expression within a block. If the expression evaluates to false after any statement within the block, execution is immediately passed to the "except" branch.
TryStmt = "try" Expression Block "except" Block .

Example:
var err error
var people People
try err == nil {
    jsonFile, err := os.Open("people.json")
    jsonBytes, err := ioutil.ReadAll(jsonFile)
    err = json.Unmarshal(jsonBytes, &people)
} except {
    return nil, errors.Wrap(err, "failed to read people.json")
}

The above translates directly to:
var err error
var people People
{
	{
		jsonFile, err := os.Open("people.json")
		if !(err == nil) {
			goto Except
		}
		jsonBytes, err := ioutil.ReadAll(jsonFile)
		if !(err == nil) {
			goto Except
		}
		err = json.Unmarshal(jsonBytes, &people)
		if !(err == nil) {
			goto Except
		}
		goto NoExcept
	}
	Except:
        {
	    return nil, errors.Wrap(err, "failed to read people.json")
        }
	NoExcept:
}

And can be used to replace:
jsonFile, err := os.Open("people.json")
if err != nil {
    return nil, errors.Wrap(err, "failed to read people.json")
}

jsonBytes, err := ioutil.ReadAll(jsonFile)
if err != nil {
    return nil, errors.Wrap(err, "failed to read people.json")
}

var people People
err = json.Unmarshal(jsonBytes, &people)
if err != nil {
    return nil, errors.Wrap(err, "failed to read people.json")
}

Has some similarities to #32795, #32804, #33002 and #33266.

Note that this requires a change in the scoping rules.  In code like
try err == nil {
    jsonFile, err := os.Open("people.json")
}

the err in the block is being declared with :=.  Since it is a different block, that means that it is a newly declared variable, and is not the same as the err variable declared in the outer block.
For example
var err error
if true {
    _, err := os.Open("does not exist")
    fmt.Println(err)
}
fmt.Println(err)

That program will print an error and then print <nil>.  The outer err variable is not the same as the inner err variable.
So in order for this to work I think that either try will have not introduce a new block scope, or it will have to somehow inject all variables mentioned in the expression into the inner block.  Either seems unusual for Go.

Could the scoping issue be cleaned up by moving the err declaration into the statement? Something akin to:
TryStmt = "try" [ SimpleStmt ";" ] Expression Block "except" Block .

used as:
var people People
try var err Error; err == nil {
    jsonFile, err := os.Open("people.json")
    jsonBytes, err := ioutil.ReadAll(jsonFile)
    err = json.Unmarshal(jsonBytes, &people)
} except {
    return nil, errors.Wrap(err, "failed to read people.json")
}

which would then translate to:
var people People
{
	var err Error
	jsonFile, err := os.Open("people.json")
	if !(err == nil) {
		goto Except
	}
	jsonBytes, err := ioutil.ReadAll(jsonFile)
	if !(err == nil) {
		goto Except
	}
	err = json.Unmarshal(jsonBytes, &people)
	if !(err == nil) {
		goto Except
	}
	goto NoExcept
	Except:
	return nil, errors.Wrap(err, "failed to read people.json")
	NoExcept:
}

This proposal doesn't allow per-statement error handling (annotation), which I and others consider a requirement.

Premised on the expectation

Again and again I see proposals with the same exact premise but don't remember ever needing that kind of error handling in practice. Where does that expectation comes from?
This looks exactly like Swift do/catch and has the same problem for me - it's really rare that I use the same error handling code for multiple call sites. In Swift, lacking any other idiomatic way of handling errors, this forces me to constantly wrap code in do/catch just to add some context. Also the fact that do/try block creates another scope means that any variable declared in that scope is invisible to the catch/except block. That's very annoying and forces you to declare variables outside of do/catch.

@gwax That suggested scoping is still not consistent with the rest of the language.  Currently a block scope starts at the {.  Writing something like if b := true; b {} effectively creates two blocks.
(Also, note that var err Error is not a SimpleStmt; err := error(nil) would work.)

@ianlancetaylor it sounds like a clean solution, from a scoping standpoint, likely depends on something happening with https://github.com/golang/go/issues/377

I don't think it's a good idea, like  try.. catch..., it's bad!

I liked the Handle-Proposal better than this, where you could define an error handler on the same level as the code being executed. What I am seeing here, is people wrapping whole function bodies and having the same handle for different errors, which, in your case, makes sense, but surely not everywhere.

There were no further comments.


Can not run the synopsis example: Missing child element(s).

An error appears when attempting to generate the keys according to the documentation.
Can't open "D:\bld\openssl_split_1710792702164\_h_env\Library/openssl.cnf" for reading, No such file or directory
300B0000:error:80000003:system library:BIO_new_file:No such process:crypto\bio\bss_file.c:67:calling fopen(D:\bld\openssl_split_1710792702164\_h_env\Library/openssl.cnf, r)
300B0000:error:10000080:BIO routines:BIO_new_file:no such file:crypto\bio\bss_file.c:75:

However, this is not the preferred method to create the keys as I am using the cryptography library for the task. In the following I run the standard code from cryptography library to generate the key and certificate, then attempting to sign them according to the synopsis example.
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa
from lxml import etree
from signxml import XMLSigner, XMLVerifier

# Generate our key
key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
)
# Write our key to disk for safe keeping
with open("privkey.pem", "wb") as f:
    f.write(key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.TraditionalOpenSSL,
        encryption_algorithm=serialization.NoEncryption(),
    ))

# Generate a CSR
csr = x509.CertificateSigningRequestBuilder().subject_name(x509.Name([
    # Provide various details about who we are.
    x509.NameAttribute(NameOID.COUNTRY_NAME, "US"),
    x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "California"),
    x509.NameAttribute(NameOID.LOCALITY_NAME, "San Francisco"),
    x509.NameAttribute(NameOID.ORGANIZATION_NAME, "My Company"),
    x509.NameAttribute(NameOID.COMMON_NAME, "mysite.com"),
])).add_extension(
    x509.SubjectAlternativeName([
        # Describe what sites we want this certificate for.
        x509.DNSName("mysite.com"),
        x509.DNSName("www.mysite.com"),
        x509.DNSName("subdomain.mysite.com"),
    ]),
    critical=True,
# Sign the CSR with our private key.
).sign(key, hashes.SHA256())
# Write our CSR out to disk.
with open("cert.pem", "wb") as f:
    f.write(csr.public_bytes(serialization.Encoding.PEM))

data_to_sign = "<Test/>"
cert = open("cert.pem").read()
key = open("privkey.pem").read()
cert = cert[36:len(cert)-35]

root = etree.fromstring(data_to_sign)
signed_root = XMLSigner().sign(root, key=key, cert=cert)
verified_data = XMLVerifier().verify(signed_root).signed_xml

I receive the following error.
DocumentInvalid: Element '{http://www.w3.org/2000/09/xmldsig#}X509Data':
Missing child element(s). Expected is one of (
{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial,
{http://www.w3.org/2000/09/xmldsig#}X509SKI,
{http://www.w3.org/2000/09/xmldsig#}X509SubjectName,
{http://www.w3.org/2000/09/xmldsig#}X509Certificate,
{http://www.w3.org/2000/09/xmldsig#}X509CRL,
##other{http://www.w3.org/2000/09/xmldsig#}* )., line 1

It looks like you are not running the synopsis but something else that you wrote. The specific reason this is failing is that you're passing a CSR stripped of its PEM header instead of a certificate. Pass a full PEM certificate, including the header.
You have however uncovered a corner case where SignXML produces an invalid signature when an invalid certificate is passed along with a valid key. I've added an error message for this case; it will be released with the next release.

It looks like you are not running the synopsis but something else that you wrote. The specific reason this is failing is that you're passing a CSR stripped of its PEM header instead of a certificate. Pass a full PEM certificate, including the header.
You have however uncovered a corner case where SignXML produces an invalid signature when an invalid certificate is passed along with a valid key. I've added an error message for this case; it will be released with the next release.

I still get the error when running the synopsis example without modifying the headers of the CSR, if the part -----BEGIN CERTIFICATE----- is the header.
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa
from lxml import etree
from signxml import XMLSigner, XMLVerifier

# Generate our key
key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
)
# Write our key to disk for safe keeping
with open("privkey.pem", "wb") as f:
    f.write(key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.TraditionalOpenSSL,
        encryption_algorithm=serialization.NoEncryption(),
    ))

# Generate a CSR
csr = x509.CertificateSigningRequestBuilder().subject_name(x509.Name([
    # Provide various details about who we are.
    x509.NameAttribute(NameOID.COUNTRY_NAME, "US"),
    x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "California"),
    x509.NameAttribute(NameOID.LOCALITY_NAME, "San Francisco"),
    x509.NameAttribute(NameOID.ORGANIZATION_NAME, "My Company"),
    x509.NameAttribute(NameOID.COMMON_NAME, "mysite.com"),
])).add_extension(
    x509.SubjectAlternativeName([
        # Describe what sites we want this certificate for.
        x509.DNSName("mysite.com"),
        x509.DNSName("www.mysite.com"),
        x509.DNSName("subdomain.mysite.com"),
    ]),
    critical=True,
# Sign the CSR with our private key.
).sign(key, hashes.SHA256())
# Write our CSR out to disk.
with open("cert.pem", "wb") as f:
    f.write(csr.public_bytes(serialization.Encoding.PEM))

# Synopsis example:
data_to_sign = "<Test/>"
cert = open("cert.pem").read()
key = open("privkey.pem").read()
root = etree.fromstring(data_to_sign)
signed_root = XMLSigner().sign(root, key=key, cert=cert)
verified_data = XMLVerifier().verify(signed_root).signed_xml

Relating to child elements, I would like the certificate to be the last child element of the root instead of being the first, some formats require this. Is this possible?

You are still passing a CSR as the cert keyword argument, not a certificate. A CSR is not a certificate. The signer ends up ignoring it.
Regarding your other question, I'm not sure what you mean exactly but if you're trying to control the position of nodes like X509Data within the Signature parent node, no, that's not directly supported (but you can subclass and override this behavior).
I'm going to close this issue since the error message legibility issue is fixed in the development branch and nothing else indicates a bug within SignXML.


remove /en-us/ in links

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/overview/azure/data-lake-store.md
:white_check_mark:Succeeded
View

api/overview/azure/sql.md
:white_check_mark:Succeeded
View

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

#sign-off


Personal function for copy class name dont work on Doom

I've the following function from my personal .emacs (vanilla emacs):
(defun endless/ruby-copy-class-name ()
  (interactive)
  (save-excursion
    (let ((name nil)
          (case-fold-search nil))
      (skip-chars-backward (rx (syntax symbol)))
      (when (looking-at-p "\\_<[A-Z]")
        (setq name (endless/-ruby-symbol-at-point)))
      (while (ignore-errors (backward-up-list) t)
        (when (looking-at-p "class\\|module")
          (save-excursion
            (forward-word 1)
            (skip-chars-forward "\r\n[:blank:]")
            (setq name (if name
                           (concat (endless/-ruby-symbol-at-point) "::" name)
                         (endless/-ruby-symbol-at-point))))))
      (kill-new name)
      (message "Copied %s" name))))

(defun endless/-ruby-symbol-at-point ()
  (let ((l (point)))
    (save-excursion
      (forward-sexp 1)
      (buffer-substring l (point)))))

It works on vanilla emacs, but in doom dont.
It is a really good function, when have nested class names, like:
module X
module Y
module Z
class N
It copy X::Y::Z::N to the clipboard, its perfect for debbuging on console.
I've debugged and the ruby-symbol-at-point returns nil.
When i make it work on doom, i'll add this to :lang ruby module.  Whats the best way to do it ?

I've debugged and the ruby-symbol-at-point returns nil.

Use (symbol-at-point) or (thing-at-point 'symbol) instead.

When i make it work on doom, i'll add this to :lang ruby module. Whats the best way to do it ?

This would need some consideration. I don't know where it would fit in, what keybinds, what keymaps, etc.

It is a really good function, when have nested class names, like:
module X
module Y
module Z
class N

Can you write tests for this?

Could you ask future elisp/emacs questions on our Discord. I don't want to inundate Doom's issue tracker with usage and elisp questions more than it already has.

I've debugged and the ruby-symbol-at-point returns nil.

Use (symbol-at-point) or (thing-at-point 'symbol) instead.

When i make it work on doom, i'll add this to :lang ruby module. Whats the best way to do it ?

This would need some consideration. I don't know where it would fit in, what keybinds, what keymaps, etc.

It is a really good function, when have nested class names, like:
module X
module Y
module Z
class N

Can you write tests for this?
Could you ask future elisp/emacs questions on our Discord? I don't want to inundate Doom's issue tracker with usage and elisp questions more than it already has.

How can i write tests ?


feat(reports): execute as other than selenium user

SUMMARY
Currently Alerts & Reports only supports executing the report and alert queries as the THUMBNAIL_SELENIUM_USER. This can be problematic in a scenario where user impersonation is enabled and there isn't a service account that has full access to all datasources or Superset objects.
To remedy this, this PR adds a config option ALERT_REPORTS_EXECUTE_AS making it possible to execute reports as

the creator if contained in the owners list
the creator
the last modifier if contained in the owners list
the last modifier
an owner (giving priority to the last modifier, then the creator if either is contained within the owners list, finally picking the first owner in the list)
the THUMBNAIL_SELENIUM_USER

The config is a list of values, meaning that if the first option isn't found (e.g. in the case of alerts/reports created programmatically where the created_by, changed_by or owners is undefined), it will move to the next option. By default it will be set to use the selenium user so as to not introduce a breaking change.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Tested in my local, and work as expected. leave a non-blocked suggestions.
Could output the Report/Alert's sender in the logging? Because it's hard to determine who send the notification from the current logging.
[2022-10-27 15:38:00,050: INFO/ForkPoolWorker-8] Scheduling alert Test Report eta: 2022-10-27 07:38:00
Executing alert/report, task id: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79, scheduled_dttm: 2022-10-27T07:38:00
[2022-10-27 15:38:00,059: INFO/ForkPoolWorker-8] Executing alert/report, task id: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79, scheduled_dttm: 2022-10-27T07:38:00
session is validated: id 4, executionid: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79
[2022-10-27 15:38:00,060: INFO/ForkPoolWorker-8] session is validated: id 4, executionid: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79
Getting chart from http://<IP_ADDRESS>:8088/api/v1/chart/316/data/?format=json&type=post_processed&force=true
[2022-10-27 15:38:00,135: INFO/ForkPoolWorker-8] Getting chart from http://<IP_ADDRESS>:8088/api/v1/chart/316/data/?format=json&type=post_processed&force=true
Would send notification for alert Test Report, to {"target"<EMAIL_ADDRESS>[2022-10-27 15:38:00,398: INFO/ForkPoolWorker-8] Would send notification for alert Test Report, to {"target"<EMAIL_ADDRESS>

@zhaoyongjie that's an excellent idea! 👏 I will add it

Tested in my local, and work as expected. leave a non-blocked suggestions.
Could output the Report/Alert's sender in the logging? Because it's hard to determine who send the notification from the current logging.
[2022-10-27 15:38:00,050: INFO/ForkPoolWorker-8] Scheduling alert Test Report eta: 2022-10-27 07:38:00
Executing alert/report, task id: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79, scheduled_dttm: 2022-10-27T07:38:00
[2022-10-27 15:38:00,059: INFO/ForkPoolWorker-8] Executing alert/report, task id: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79, scheduled_dttm: 2022-10-27T07:38:00
session is validated: id 4, executionid: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79
[2022-10-27 15:38:00,060: INFO/ForkPoolWorker-8] session is validated: id 4, executionid: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79
Getting chart from http://<IP_ADDRESS>:8088/api/v1/chart/316/data/?format=json&type=post_processed&force=true
[2022-10-27 15:38:00,135: INFO/ForkPoolWorker-8] Getting chart from http://<IP_ADDRESS>:8088/api/v1/chart/316/data/?format=json&type=post_processed&force=true
Would send notification for alert Test Report, to {"target"<EMAIL_ADDRESS>[2022-10-27 15:38:00,398: INFO/ForkPoolWorker-8] Would send notification for alert Test Report, to {"target"<EMAIL_ADDRESS>

@zhaoyongjie that's an excellent idea! 👏 I will add it

Let's avoid logging user emails please

Tested in my local, and work as expected. leave a non-blocked suggestions.
Could output the Report/Alert's sender in the logging? Because it's hard to determine who send the notification from the current logging.
[2022-10-27 15:38:00,050: INFO/ForkPoolWorker-8] Scheduling alert Test Report eta: 2022-10-27 07:38:00
Executing alert/report, task id: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79, scheduled_dttm: 2022-10-27T07:38:00
[2022-10-27 15:38:00,059: INFO/ForkPoolWorker-8] Executing alert/report, task id: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79, scheduled_dttm: 2022-10-27T07:38:00
session is validated: id 4, executionid: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79
[2022-10-27 15:38:00,060: INFO/ForkPoolWorker-8] session is validated: id 4, executionid: 0aa521ec-670d-4c0f-aec7-78c13fb7ba79
Getting chart from http://<IP_ADDRESS>:8088/api/v1/chart/316/data/?format=json&type=post_processed&force=true
[2022-10-27 15:38:00,135: INFO/ForkPoolWorker-8] Getting chart from http://<IP_ADDRESS>:8088/api/v1/chart/316/data/?format=json&type=post_processed&force=true
Would send notification for alert Test Report, to {"target"<EMAIL_ADDRESS>[2022-10-27 15:38:00,398: INFO/ForkPoolWorker-8] Would send notification for alert Test Report, to {"target"<EMAIL_ADDRESS>

@zhaoyongjie that's an excellent idea! 👏 I will add it

Let's avoid logging user emails please

The email only showed when ALERT_REPORTS_NOTIFICATION_DRY_RUN is Ture.

Hello @villebro!
I have installed lastest Superset (including this PR), and tried to use my old config for Alerts and Reports. And not works :(.
Every report just waits endlessly.
But I use ALERT_REPORTS_NOTIFICATION_DRY_RUN it says that task is finished successfully.
Did you tested email reports without ALERT_REPORTS_NOTIFICATION_DRY_RUN?

@Always-prog yes, I'm actually using this locally and it works as expected. Endless execution usually implies that the report wasn't able to render successfully.
To double check that there's a regression, are you able to revert this PR and make it work again? Also, did you try to execute as the Selenium user with this PR as is the default? Doing it like this should work similarly as before - if not there may very well be a regression that I'm not aware of.

Thank you for answer. I'll test it again.

Sorry, my bad!
I used wrong config.

@Always-prog thanks for confirming 👍

@villebro, Thanks for your commitment :)
I look forward to using this feature.


Remove usage of deleted packages

Fixes #150

remove all usages of six
drop python 2 compatibility

Since we expect apps to drop Python 2 compatibility when adding support for Django 3.0, we’re removing these APIs at this time.

Codecov Report

Merging #151 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #151   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          17     17
  Lines         256    255    -1
  Branches       28     28
=====================================
- Hits          256    255    -1

Impacted Files
Coverage Δ

graphql_jwt/path.py
100% <100%> (ø)
: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 0ece9b5...002dcf6. Read the comment docs.

Can we do anything to move this along?

Wating for this to upgrade to Django 3.0

If this library accepts these changes the test suite should also be adjusted, if anybody can give me a hint I am willing to change this

If this library accepts these changes the test suite should also be adjusted, if anybody can give me a hint I am willing to change this

What do you mean @lassesteffen? Seems like the tests pass just fine for this PR?

It should also test explicitly for Django 3 right?

Ah yes of course! Didn't think of that! I can do a PR that does that.

@lassesteffen Now Django 3.0 is being tested in my PR: https://travis-ci.org/flavors/django-graphql-jwt/builds/620524261
@mongkok Do you need any help with getting a new release out? I'm happy to help :)


Updated default Camera values

Thereby updated all examples, and verified they work.
Also added a new example: zoom.go
Please review the code, especially at the bottom. @paked
Fixes #26.

Unless you have anything else to add, this PR LGTM.

@EtienneBruines Thanks for the contribution!


Add "chall" as a alias of "Challenge" in Faq

Add "chall" as a alias of "Challenge" in Faq, so people can do /faq chall, I add this because in challenge command they have a alias named "chall".

@Joimer :s


Unable to load addon script from path: 'res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd'. This might be due to a code error in that script. Disabling the addon at 'res://addons/Terrain3D-main/project/addons/terrain_3d/plugin.cfg' to prevent further errors.

(this shows if i try to enable it)
Unable to load addon script from path: 'res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd'. This might be due to a code error in that script.
Disabling the addon at 'res://addons/Terrain3D-main/project/addons/terrain_3d/plugin.cfg' to prevent further errors.
(this shows inside Output box)
platform/linuxbsd/x11/display_server_x11.cpp:5260 - XCreateIC couldn't create wd.xic
platform/linuxbsd/x11/display_server_x11.cpp:5260 - XCreateIC couldn't create wd.xic
platform/linuxbsd/x11/display_server_x11.cpp:5260 - XCreateIC couldn't create wd.xic
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:7 - Parse Error: Preload file "res://addons/terrain_3d/editor/components/ui.gd" does not exist.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:7 - Parse Error: Could not resolve type for constant "UI".
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:8 - Parse Error: Preload file "res://addons/terrain_3d/editor/components/region_gizmo.gd" does not exist.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:8 - Parse Error: Could not resolve type for constant "RegionGizmo".
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:9 - Parse Error: Preload file "res://addons/terrain_3d/editor/components/surface_list.gd" does not exist.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:9 - Parse Error: Could not resolve type for constant "SurfaceList".
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:11 - Parse Error: Could not find type "Terrain3D" in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:16 - Parse Error: Could not find type "Terrain3DEditor" in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:18 - Parse Error: "SurfaceList" is a constant but does not contain a type.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:21 - Parse Error: "RegionGizmo" is a constant but does not contain a type.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:27 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:52 - Parse Error: Could not find type "Terrain3D" in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:59 - Parse Error: Could not find type "Terrain3D" in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:128 - Parse Error: Could not find type "Terrain3DEditor" in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:130 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:133 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:134 - Parse Error: Identifier "Terrain3DStorage" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:135 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:136 - Parse Error: Identifier "Terrain3DStorage" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:137 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:143 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:147 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:151 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:152 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:168 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:188 - Parse Error: Could not find type "Terrain3DSurface" in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:200 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
res://addons/Terrain3D-main/project/addons/terrain_3d/editor/editor.gd:201 - Parse Error: Identifier "Terrain3DEditor" not declared in the current scope.
platform/linuxbsd/x11/display_server_x11.cpp:5260 - XCreateIC couldn't create wd.xic
(i'm using godot 4.1.1 stable flathub[bd6af8e0e]  on linux mint os)
(i'm using Terrain3d version 0.8.2-alpha , Author Roope Palmroos & cory Petkobsek)

Parse Error: Preload file "res://addons/terrain_3d/editor/components/ui.gd" does not exist.

It says right in the error messages that the files do not exist. You didn't install the plugin properly. Review the instructions and review your file system compared to the file names in these logs. If the files don't exist where it's looking, it will never work. That's obvious isn't it?
Also use your console, not the output window. If you're a Linux user, surely you know how to open a terminal and run Godot through it.
Finally when posting code or error message, encase the content between lines with three back ticks. no slashes
\`\`\`
So it looks like this.
\`\`\`

Also Terrain3D-main probably means what was downloaded was the code repository. If that's the case, you need to compile it yourself. If you wanted to download the binary file you need to do so from here https://github.com/TokisanGames/Terrain3D/releases as stated in the instructions.


Dashboard can be created without sheet name

Summary
I can create a dashboard without sheet name.

Create dashboard (input dashboard name and description, but not input sheet name)
Dashboard can be created successfully
We still can choose this dashboard when we try to save the visualization to dashboard. But there is no sheet display in Sheet drop down.

Steps to reproduce
What is the current bug behavior?

What is the expected correct behavior?

Relevant logs and/or screenshots

Possible fixes

This is :bug: Bug Report

Please check if there's still an issue with the latest version.

Closing as stale.


Am adblock tracker

This sends an event to Google Analytics when adblock in being used on a page.
To check:
Turn on Adblock in your browser.
Open up console and type:
window.lp.isAdblockActive
If it is active should return true if it is inactive it should return false
Note:  When I was working on this locally I could only get ads to load in the landing pages - hotels & car-rental
Jira Ticket
https://lonelyplanet.atlassian.net/browse/LPMC-105

kewl. :+1


Helix tree leaves have no effective tool

Helix tree leaves cannot be broken faster than breaking them by hand making use of a hoe or shears, like other leaf blocks. This can be tested by placing some down and attempting to break them with a hoe, shears, axe, pickaxe and shovel, and comparing to the speed of breaking them by hand.

If I remember correctly this bug was already fixed in dev version

Fixed in 0.9.2


WinSDK: extract Networking submodule

Currently winnetwk.h gets included via windows.h.
This change extracts it into a separate submodule.
Related discussion: https://github.com/apple/swift/pull/33929

@swift-ci please test


OSD-14723 enable ap-southeast-4

What is being added?
Adding a new region in the config file.
This is mostly following https://github.com/openshift/aws-account-operator/blob/master/docs/6.0-Maintenance.md#61---adding-a-new-region-to-support
The AMI is not the same as us-east-1 because the current us-east-1 image is too old to find in ap-southeast-4. The image used here is
ami-0fe006c8d5a67ab1b  RHEL-9.1.0_HVM-20221101-x86_64-2-Hourly2-GP2
Owner account ID<PHONE_NUMBER>98 (same as other regions)
Checklist before requesting review

[N/A] I have tested this locally
The change is more on configuration file.
Ran make lint make test make test-apis
[N/A] I have included unit tests
No code change
[N/A] I have updated any corresponding documentation

Steps To Manually Test
Please provide us steps to reproduce the scenarios needed to test this.  If an integration test is provided, let us know how to run it. If not, enumerate the steps to validate this does what it's supposed to.

Start the operator
Run the thing
Observe X in the spec for the thing
Clean up the thing

Ref OSD-14723

Codecov Report

Merging #752 (570faeb) into master (5b5a00a) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##           master     #752   +/-   ##
=======================================
  Coverage   42.81%   42.81%
=======================================
  Files          42       42
  Lines        5795     5795
=======================================
  Hits         2481     2481
  Misses       3086     3086
  Partials      228      228

/hold [@feichashao thanks for the PR ! we both will fix the failing test on monday , I have got it why it's failing]

Closing this PR and @MitaliBhalla will create a new one.


Separation of PostgreSQL schema cannot be deleted

Describe the bug
I'm using PostgreSQL schema separation.  But when I delete the tenant, I can't delete the schema.
The workaround was to include CASCADE when dropping the schema. Thank you for providing the wonderful software. Please make corrections.
    public function tearDown(): void
    {
        config([
            'tenancy.queue_database_deletion' => false,
            'tenancy.delete_database_after_tenant_deletion' => true,
        ]);
        tenancy()->all()->each->delete();

        parent::tearDown();
    }

Error message
PHPUnit 9.1.5 by Sebastian Bergmann and contributors.

.E.E....                                                            8 / 8 (100%)

Time: 00:01.386, Memory: 30.00 MB

There were 2 errors:

1) App\Domains\Book\Tests\Jobs\BookDeleteJobTest::test_book_delete_job
Illuminate\Database\QueryException: SQLSTATE[2BP01]: Dependent objects still exist: 7 ERROR:  cannot drop schema tenant2667982a-db4e-40f6-b136-10f4a8456286 because other objects depend on it
DETAIL:  table "tenant2667982a-db4e-40f6-b136-10f4a8456286".migrations depends on schema tenant2667982a-db4e-40f6-b136-10f4a8456286
table "tenant2667982a-db4e-40f6-b136-10f4a8456286".users depends on schema tenant2667982a-db4e-40f6-b136-10f4a8456286
table "tenant2667982a-db4e-40f6-b136-10f4a8456286".password_resets depends on schema tenant2667982a-db4e-40f6-b136-10f4a8456286
table "tenant2667982a-db4e-40f6-b136-10f4a8456286".books depends on schema tenant2667982a-db4e-40f6-b136-10f4a8456286
table "tenant2667982a-db4e-40f6-b136-10f4a8456286".authors depends on schema tenant2667982a-db4e-40f6-b136-10f4a8456286
HINT:  Use DROP ... CASCADE to drop the dependent objects too. (SQL: DROP SCHEMA "tenant2667982a-db4e-40f6-b136-10f4a8456286")

Fixes
diff --git a/src/TenantDatabaseManagers/PostgreSQLSchemaManager.php b/src/TenantDatabaseManagers/PostgreSQLSchemaManager.php
index a93ed90..1e25e32 100644
--- a/src/TenantDatabaseManagers/PostgreSQLSchemaManager.php
+++ b/src/TenantDatabaseManagers/PostgreSQLSchemaManager.php
@@ -37,7 +37,7 @@ class PostgreSQLSchemaManager implements TenantDatabaseManager, CanSetConnection

     public function deleteDatabase(string $name): bool
     {
-        return $this->database()->statement("DROP SCHEMA \"$name\"");
+        return $this->database()->statement("DROP SCHEMA \"$name\" CASCADE");
     }

     public function databaseExists(string $name): bool

Your setup

Laravel version: 7.13
stancl/tenancy version: 2.3
Storage driver: postgresql 11 / Schema

Can you create a PR?

Can you create a PR?

Yes, I will try!

Can you create a PR?

Yes, I will try!

I couldn't push because I didn't have permission.

https://github.com/stancl/tenancy/commit/369304089256d0edb0d5487f87c114d23ebf0c02
Bugfix will be released today.

3693040
Bugfix will be released today.

Thank you so much!


Control flow doesn't work as expected when using T|any

TypeScript Version:  2.5.3
Code
let s: string | any; s = ''; s. // s should be of type string

Expected behavior:
s should be of type string (same behaviour applied to {} or Object
Actual behavior:
s is of type any

That is by design... any is a top type, it cannot be narrowed.  A union type of string | any immediately becomes just any.
Is there a reason why you would use any that way?

This is just to tell that s could become any too. So, I was expecting intellisense to cast s to string first.

As stated any is a top type.  Once something is any that is it, it cannot be narrowed.  Use something other than the top type in a union if you want narrowing via CFA.

It's both the top and bottom in a sense which is problematic. Narrowing from any would make sense as the top, but makes less sense since it's the bottom - you'd get more known information, but you'd lose its capabilities.
If you use TypeScript with noImplicitAny and an uninitialized variable, you'll get the sort of lenient-but-aware narrowing-aware behavior though.


Transfer Process Manager Command Queue

Ref #330 . Depends on #451 so it will remain in "draft" state until the other gets merged,
but in fact this is complete and ready for review.
Description
This PR introduce a Command Queue in the TransferProcessManager.
The motivations for this are listed in the issue.
Implementation details
Commands are simple POJOs that extend TransferProcessCommand.
For every command there's an handler, who execute the business logic and do the state change.
Note that "every state change should be done inside a command handler".
At the moment is not really like this, I leaved some TODO here and there, I noticed some unclear situations that are not tested and not documented.
The commands are executed by the loop inside the TransferProcessManager, every command brings with itself a future so it will be possible for a client to know when the command is handled (and also if some error occurred).
Every handler returns a TransferProcessCommandResult, that contains:

nextCommand, a reference to the command that has to be executed at the end of the current one (note: this is a workaround needed because at the moment there are no events generated, otherwise an "event-to-command" translator would work better)
postAction, a function that tells what TransferProcessListener method should be called when the command is executed correctly.

Tests
I introduced an AsyncTransferProcessManagerIntegrationTest that tests some "start-to-end" transfer processes using the in-memory store. This was necessary because the mocking would have been just crazy.
I moved all the tests from the AsyncTransferProcessManagerConsumerTest in the respective handler tests.
Next steps
There are a lot of "nice to do" things that could be implemented, but the most important in my opinion are:

define a better interface: at the moment TransferProcessStore exposes 6 methods, but they are not consistent in the return types (in my opinion everything should be async so every one should return a CompletableFuture, one of them (transitionProvisioning) has no clear intents (I added a TODO on its only call)
avoid useless commands/states: with this refactor is pretty clear that some states are not needed anymore (all those ending with ING) and the handlers/commands starting with Prepare* could be avoided.
better handling of async operations: in two handlers (provision and deprovision) the async calls and their return are handled in different manners. Since there are no events the only way to handle async state changes is to pass the commandQueue to the command handler but that's not a good way to do things. (e.g. ProvisionHandler)
graceful shutdown: at the moment there are no handling of the shutdown, I forced the stop() method to wait for all the commands to be executed but this concept needs to be improved
unit test handlers: I added some tests on the handlers, but some of them are only covered by integration tests.

Closing as it will be replaced by another PR by @paullatzelsperger


mobile/ci: Use new CI for scheduled/triggered (+cleanups)

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

@abeyad this should fix the mobile release CI - ive tested it as far as i can without the required keys
it should also give us the basis to resolve the traffic test issue


A string for the statusline

A function returning a string usable by the statusline will be very useful (like validator or syntastic does). Should we wait for a stable API before implementing it?

The plugin does now echo the error when you highlight a line. Do you want a function which returns the whole string for that?

I'm thinking about a function returning the number of issues, that the user can integrate into the statusline.
e.g. ale#getStatusLine() will return something like '5 errors' or maybe just '5'.
Syntastic provides even a way to customize the output:

Sounds interesting. I'll look into it at some point.

This is so close to completion, I'll get this included in 1.0, I think. It shouldn't delay anything.


Serious problem bug with SystemChrome.setPreferredOrientations when use it with an iPad with iOS 16

issue_link
#121007
Commit Hash
6ea01e6
Target
stable
pr_link
https://github.com/flutter/flutter/blob/stable/bin/internal/release-candidate-branch.version
Impacted Users
The orientation does not function correctly and this creates serious problems
Impact Description
The orientations do not function correctly and this creates serious problems because once the landscape mode is set for one page, when you return to the others with all the available orientations it remains in landscape
Workaround
No
Risk
low
Test Coverage
yes
Validation Steps
No response

This bug is really a serious regression, especially for applications playing videos only in landscape.
Please merge the fix into the next stable update.

@csacchetti please open a cherry pick pull request to the branch you pointed to in the PR Link section.
Once that is updated and the correct link to the Cherry pick is provided, we will review.

This is my first time requesting a cherry pick and I am not very familiar with it. The commit hash is correct but I don't know how to find the pr_link. I would ask for this commit to be added to the next release of flutter 3.7.6. But I don't know what to do now.

@csacchetti it is okay if you are not familiar with the process, let me walk you through it.

git checkout master // fetch and pull the latest changes from master.
git checkout flutter-3.7-candidate.1 // This is the same branch you posted in the pr_link section.
git checkout -b <your local branch name for cherry-picking
git cherry-pick 6ea01e6 // cherry pick this into your local branch.
Push it up to github as a PR.
Grab that link from your PR and post it in the pr_link section of this form.

Thanks again for providing this cherry-pick request!

Is there any word on a timeline for when this can get approved to be cherry pick released?
According to https://github.com/flutter/flutter/wiki/Triage this is a P0 or a P1 issue affecting all users from core functionality.

I was asked about hotfixing this in the issue https://github.com/flutter/flutter/issues/111587#issuecomment-1307840441, fixed in PR https://github.com/flutter/engine/pull/37302:

Any plans for pulling this change into 3.3.x line?

We generally reserve hot fixes for very high priority fixes, like that the app won't compile, or it crashes for a high percentage of users.

Stability of the release will be the overarching goal, so only high impactful and critical cherrypicks will be allowed across Dart and Flutter.

https://github.com/flutter/flutter/wiki/Flutter-Cherrypick-Process

I don't think this is worth cherrypicking to stable.  It is available on 3.6.0-0.0.pre which is currently in the beta channel.

Thank you for pointing this out @jmagman!  Wth that, I am closing this cherry-pick request.

This commit seems to be already merged to 3.7 (checked myself with local engine) and the issue unfortunately seems to persist at least on iOS 16

@itsjustkevin @jmagman
The author of this issue incorrectly pointed to the wrong engine fix.
https://github.com/flutter/engine/pull/38230
This is the one we need to solve this issue.
It's merged in to beta but is not in stable.

@jmagman
We found a workaround that doesn't require a custom engine build and runs on 3.7.7 and are using that now. So we don't require this cherry pick anymore.
If someone else wants to make it, this is the PR to do it with.
Here's the code to work around this for anyone that wants it.
https://gist.github.com/Moncader/be7d7830e4bf64848e89b85f9dbc25a6
It's just a class (in swift) that extends FlutterViewController and overrides (via objc selector shenanigans) the default FlutterViewControllers orientation code with the updated code from https://github.com/flutter/engine/pull/38230
Set your storyboard to use this ViewController instead and the issue will be gone.

@Moncader a hot fix will release soon with this Cherry-pick.

It is!  https://github.com/flutter/flutter/wiki/Hotfixes-to-the-Stable-Channel.
This cherry-pick is available in Flutter 3.7.8.

@GabrielAraujo and @Moncader no fix landed for this one today as there is no new cherry-pick request.  If someone has a cherry-pick solution they are willing provide, I can get it in the next release!

@burghoffdavid  I fixed that issue in https://github.com/flutter/engine/pull/38230, available in Flutter repo at https://github.com/flutter/flutter/pull/117005 and available in Flutter 3.7.0-7.0.pre in the beta channel. I don't know what would be referencing the packages repo.
That fix seems to be the one the subsequent commenters want cherry-picked.  Instead of commenting on this closed cherry-pick request for a different issue, please file a new cherry pick issue and fill out the template with what you actually want hotfixed.

Please open a new cherry-pick request for #116711 then, this request is all over the place and it's too confusing.

See @itsjustkevin comment here as well https://github.com/flutter/flutter/issues/121107#issuecomment-1452074093

Just tried 3.7.8 and the issue is still present (On Stable).
Note - on Android there is no issue - its only on iOS.


[SPARK-33398] Fix loading tree models prior to Spark 3.0

What changes were proposed in this pull request?
In https://github.com/apache/spark/pull/21632/files#diff-0fdae8a6782091746ed20ea43f77b639f9c6a5f072dd2f600fcf9a7b37db4f47, a new field rawCount was added into NodeData, which cause that a tree model trained in 2.4 can not be loaded in 3.0/3.1/master;
field rawCount is only used in training, and not used in transform/predict/featureImportance. So I just set it to -1L.
Why are the changes needed?
to support load old tree model in 3.0/3.1/master
Does this PR introduce any user-facing change?
No
How was this patch tested?
added testsuites

those models are created by following lines, in 2.4.7:

import org.apache.spark.ml.classification._
import org.apache.spark.ml.regression._

val data = spark.read.format("libsvm").load("/d0/Dev/Opensource/spark/data/mllib/sample_libsvm_data.txt")

val dtc = new DecisionTreeClassifier()
val dtcm = dtc.fit(data)
dtcm.save("/tmp/dtc-2.4.7")

val rfc = new RandomForestClassifier().setNumTrees(2)
val rfcm = rfc.fit(data)
rfcm.save("/tmp/rfc-2.4.7")

val gbtc = new GBTClassifier().setMaxIter(2)
val gbtcm = gbtc.fit(data)
gbtcm.save("/tmp/gbtc-2.4.7")

val dtr = new DecisionTreeRegressor()
val dtrm = dtr.fit(data)
dtrm.save("/tmp/dtr-2.4.7")

val rfr = new RandomForestRegressor().setNumTrees(2)
val rfrm = rfr.fit(data)
rfrm.save("/tmp/rfr-2.4.7")

val gbtr = new GBTRegressor().setMaxIter(2)
val gbtrm = gbtr.fit(data)
gbtrm.save("/tmp/gbtr-2.4.7")

Test build #133216 has started for PR 30889 at commit 6af5695.

Test build #133217 has started for PR 30889 at commit 8dae8fc.

Test build #133217 has finished for PR 30889 at commit 8dae8fc.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test build #133216 has finished for PR 30889 at commit 6af5695.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

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

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

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

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/37815/

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

So most of the large number of files are just new test files saved by 2.x? OK.
I think it's fine to fix and add tests. this should go into 3.0.x too?

Hi, @zhengruifeng .
I removed [3.0][3.1] from the PR title, [SPARK-33398][3.0][3.1] Fix loading tree models prior to Spark 3.0.
[3.1] is used when the PR is opened for branch-3.1. Please don't use it like an Affected Version from the JIRA issue~ Thanks. :)

@srowen Most of those files are the model files, I will try to reduce the number of files.

this should go into 3.0.x too?

Yes,  in 3.0.1, I can not load any tree model created in 2.4.7

Tree model will create datafrme with numPartitions=defaultParallelism, which will generate lots of small files; while other models like LinearSVC will repartition(1) before saving.
It maybe nice to reduce the num of files in another ticket.

Test build #133254 has started for PR 30889 at commit 027ec1c.

also ping @imatiach-msft

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

Test build #133254 has finished for PR 30889 at commit 027ec1c.

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

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

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/37852/

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

Merged to master/3.1/3.0

Merged to master/3.1/3.0

Thanks @srowen @bmarcott  for reviewing!

Thanks @srowen @bmarcott  for reviewing!

Good works!

Good works!

@zhengruifeng Thanks for putting in the fix!

@zhengruifeng Thanks for putting in the fix!

Hi All,
I have trained a random forest model in pyspark version 2.4 but I am unable to reload it in pyspark version 3.0.3 but it gives below error :

Please suggest how should I proceed ?


Bigtable - improvement: Rewrite ReframingResponseObserver

The new version uses atomics to ensure mutual exclusion instead of synchronization.
This allows the delivery loop to be simpler since there is no need to need to defer actions until after exiting the synchronization.
Also, move all interactions with the Reframer to the delivery loop, which ensures proper error handling if the Reframer detects an error.

All feedback should be addressed, PTAL

rebased

LGTM. @garrettjonesgoogle Do you want to take a look? If not, we can merge.

This looks like a mostly implementation change, so I'll defer to @pongad 's LGTM.


MBusFrame.fields.start1 wrong size

Hi,
Is this a typo or why is start1 type c_uint8 * 16 in MBusFrame._fields_? According to https://github.com/rscada/libmbus/blob/master/mbus/mbus-protocol.h#L77 it shoul also be just c_uint8.
typedef struct _mbus_frame {
    unsigned char start1;
    unsigned char length1;
    unsigned char length2;
    unsigned char start2;
...

How do you fill and use the frame structure with such array definition?
I locally changed it to c_uint8
diff --git a/mbus/MBusFrame.py b/mbus/MBusFrame.py
index 9d1b2b5..8f511b6 100644
--- a/mbus/MBusFrame.py
+++ b/mbus/MBusFrame.py
@@ -7,7 +7,7 @@ class MBusFrame(Structure):
         return "MBusFrame: XXX"

 MBusFrame._fields_ = [
-        ("start1",   c_uint8 * 16),  # MBusFrameFixed
+        ("start1",   c_uint8),
         ("length1",  c_uint8),
         ("length2",  c_uint8),
         ("start2",   c_uint8),

Now I can easily create MBus frames with code like this:
        mbus_frame = MBusFrame()
        mbus_frame.start1 = MBUS_FRAME_LONG_START
        mbus_frame.length1 = data_size + 3
        mbus_frame.length2 = mbus_frame.length1
        mbus_frame.start2 = mbus_frame.start1
...

Is this a mistake and should I send a pull request for that or is it possible to use this structure in any other way?

Agreed, and fixed in https://github.com/qris/python-mbus/commit/236b82f9c544409eeeb9701af58170fa65394809 along with another field that's wrong, making next invalid and multi-frame replies unreadable.


Replacing ofBorg with GitHub Actions

This is one of the two plans to ensure we can also perform github evaluation checks in the future.
See https://discourse.nixos.org/t/infrastructure-announcement-the-future-of-ofborg-your-help-needed/56025
for more information.
To replace OfBorg’s functions with GitHub Actions the following tasks need to be implemented:

[x] Running evaluation checks on Nixpkgs
[ ] Eval NixOS options.
[x] Identifying package rebuilds and adding appropriate labels to the repository.
[ ] Notifying package maintainers
[ ] (Optional) Rebuilding selected packages for Linux/macOS.
[x] build lib-tests if ./lib changes

I already created a proof of concept pull request here: https://github.com/NixOS/nixpkgs/pull/352808
Update
We have our first jitsi meeting to coordinate the migration on the 14.11 (today) at 17:00 UTC (18:00 Berlin time) at https://jitsi.lassul.us/nixos-infra

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/infrastructure-announcement-the-future-of-ofborg-your-help-needed/56025/2

evaluation checks takes too many resource. I'm worried about if github action's machine can run it in reasonable time.

@Bot-wxt1221 I managed to run it in 5 minutes for naive nix-env evaluation based on the default.nix entry point and 15 minutes using the same logic that ofborg uses: https://github.com/Mic92/nixpkgs/actions/workflows/eval.yml
Also this is not yet the end of the line of optimizations. We still have https://github.com/Mic92/nixpkgs/blob/main/pkgs/top-level/release-attrpaths-superset.nix to split evaluation in smaller parts that can run even in parallel.

https://github.com/NixOS/nixpkgs/pull/352808#issuecomment-2475893708 and
I worry that bot accounts like ryantm-r can easily hit the limit of CI. CC @ryantm

@JohnRTitor
Yes it's possible:
name: Trigger on PR Comment

on:
  issue_comment:
    types: [created]

jobs:
  run-on-comment:
    if: github.event.issue.pull_request != null && contains(github.event.comment.body, '/build')
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v3

#352808 (comment) and
I worry that bot accounts like ryantm-r can easily hit the limit of CI. CC @ryantm

Well. We have to try and see. Just now it's speculation if it works or not.

Good to know, though huge builds like kernel and its modules, chromium and firefox will obviously not work.

According to github doc:
https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions
GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners. For private repositories, each GitHub account receives a certain amount of free minutes and storage for use with GitHub-hosted runners, depending on the account's plan. Any usage beyond the included amounts is controlled by spending limits.

So maybe we don't need to worry about time?

Good to know, though huge builds like kernel and its modules, chromium and firefox will obviously not work.

You can run builds for 12h. Obviously we should establish some reasonable timeouts to be a good citizen in the ecosystem.

Since this is a pretty major change related to maintainance and everyday tasks. I am pinning this to attract more feedback.

Added a ^ meeting date for this.

Maybe of interest for this issue, at least just for inspiration, but I've also (ab)used GitHub actions to build tests in my project using a dynamically generated matrix. My project uses flakes but this should be adaptable to non-flakes https://github.com/ibizaman/selfhostblocks/blob/main/.github/workflows/build.yaml
This matrix then produces a big list of jobs, one job per test https://github.com/ibizaman/selfhostblocks/actions/runs/11502502422 like so:

See the meeting notes for today's infra meeting where we mainly discussed the CI situation: https://github.com/NixOS/infra/blob/7688f20babbeb27a10e4d8669fffe4b0ed00e17f/docs/meeting-notes/2024-11-14.md
Here is the high-level plan:

Infinisil wants to take a look at evaluating nixpkgs in github actions to compute the number of changed paths
Independently we will take a look how we can build packages.
For the beginning we will just run github actions as they are designed as a pull_request event. This is because it's the most straight forward way and we actually have not validated if we cannot just build everything fast enough without resorting to my initial strategy.

Independently from meeting we also have other discussions about how we can develop ofborg in the future. However this might not happen before February, so we need some alternative solution in the meantime if not longer.

I've opened a draft PR here for evaluating Nixpkgs using GitHub Actions: https://github.com/NixOS/nixpkgs/pull/356023. For just evaluation (and those only taking 5 minutes on each arch) instead of also building, I don't think we need to do the running-on-forks dance. Building is harder to get, but it's arguably also less important (and very orthogonal to evaluation).

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/infrastructure-announcement-the-future-of-ofborg-your-help-needed/56025/27

One important aspect that ofborg currently provides, and that this issue doesn't mention, is the performance report.
This currently works by evaluating nixpkgs twice, once before the PR and once after.
For the majority of PRs the performance report is not important, but for work on lib & stdenv, it can be very important.
The report currently does not report the impact of checkMeta, something that has lead to a less than stellar review experience since contributors & reviewers don't actually understand the real performance impact.

One important aspect that ofborg currently provides, and that this issue doesn't mention, is the performance report. This currently works by evaluating nixpkgs twice, once before the PR and once after.
For the majority of PRs the performance report is not important, but for work on lib & stdenv, it can be very important.
The report currently does not report the impact of checkMeta, something that has lead to a less than stellar review experience since contributors & reviewers don't actually understand the real performance impact.

Could that be another on-demand GitHub actions job?

One important aspect that ofborg currently provides, and that this issue doesn't mention, is the performance report. This currently works by evaluating nixpkgs twice, once before the PR and once after.
...

Could that be another on-demand GitHub actions job? We could even run automatically if certain paths has been changed.

Sounds good to me.

Building linux kernel is fine on Github Actions, the CPU time is sufficient, it takes less than 2 hours to build Jovian-NixOS linux kernel, and Github Actions offer max 6 hours per run.

I am concerned about building the kernel modules (both in tree and out of tree).

Building linux kernel is fine on Github Actions, the CPU time is sufficient, it takes less than 2 hours to build Jovian-NixOS linux kernel, and Github Actions offer max 6 hours per run.

I am concerned about building the kernel modules (both in tree and out of tree).

Well. We should be quickly able to filter out and blacklist packages we don't want to build once the source of truth lives in the repository? Also we can actually stop github actions, which was not possible with ofborg builds.

Maybe of interest for this issue, at least just for inspiration, but I've also (ab)used GitHub actions to build tests in my project using a dynamically generated matrix. My project uses flakes but this should be adaptable to non-flakes https://github.com/ibizaman/selfhostblocks/blob/main/.github/workflows/build.yaml This matrix then produces a big list of jobs, one job per test https://github.com/ibizaman/selfhostblocks/actions/runs/11502502422 like so:

did you see this? https://github.com/thecaralice/flake-gha

IDK how useful this may be in this endeavour but I was playing on adding check status in Nixpkgs commits. No success. It fails with error 404. If I point to my fork it works but don't appear in the PR. If a workflow in a user needs to set a status it would require some kind of proxy, that is pretty doable using something like Cloudflare Workers basically for free.
I think this behavior is expected.

Evaluation on github works on a charm! Evaluation takes 5 minutes with ~3 minutes spent on actual eval.

Minor problem: https://github.com/NixOS/nixpkgs/actions/runs/11940360927/job/33282898414#step:5:334
Should be fixable by just decreasing chunkSize here though: https://github.com/NixOS/nixpkgs/blob/43c3e8ba3184cc02ee0df7c47d4dcf016de03ec7/.github/workflows/eval.yml#L92 :)

Identifying package rebuilds and adding appropriate labels to the repository.
(Optional) Rebuilding selected packages for Linux/macOS.

I wonder if we can reuse some of your (@Mic92's) previous work and make calls out to nixpkgs-review.

@tomodachi94 I can work on making those things work :)

I was experimenting on evaluating the package list as a package that takes pkgs.path.
That way the top level eval can be run as a normal build, getting remote builder support by extension.
Getting the difference between two nixpkgs commits is as easy as building this package in both revisions then running diff in the results.
https://github.com/NixOS/nixpkgs/pull/357934

Next step: https://github.com/NixOS/nixpkgs/pull/359704

Github actions now show added/removed/changed packages in the overview: https://github.com/NixOS/nixpkgs/actions/runs/12106942278 thanks to @itepastra in https://github.com/NixOS/nixpkgs/pull/360339

Enable testing aliases: https://github.com/NixOS/nixpkgs/pull/360242

Nixos options: https://github.com/NixOS/nixpkgs/pull/360876

has it been raised somewhere already that github actions workflows won't run on PRs created by @github-actions? e.g. automated backports triggered using labels like backport release-24.11. whether or not automated PR contents can be trusted implicitly, still maintainers of changed should be pinged, when that's implemented with GHA.

We just need a GitHub app for that, https://github.com/NixOS/org/issues/38

Evaluates nixpkgs-lib-tests: https://github.com/NixOS/nixpkgs/pull/361447

Since we will be using get-merge-commit.sh a lot, let's make it a reusable workflow: https://github.com/NixOS/nixpkgs/pull/361494

I have a feature-request: make a CI check that check if commit messages fit https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions

@misuzu Let's use this existing issue for that discussion: https://github.com/NixOS/nixpkgs/issues/281573

This has already been suggested; there is discussion here: https://github.com/NixOS/nixpkgs/issues/281573

For requesting reviews from maintainers: https://github.com/NixOS/nixpkgs/pull/366046

GA eval runs out of memory in #303849: https://github.com/NixOS/nixpkgs/actions/runs/12339733507/job/34436410147?pr=303849
It runs through locally with nix-build ci -A eval.full ....
Is this another example of #355847 (comment), so reducing the chunkSize would help?

How reproducible is this. Also how much swap was used?

While working on #359641, I found that the current GH actions that evaluate pkgs misses the additional warning messages generated after applying the feature branch.

As reported in https://github.com/NixOS/nixpkgs/pull/366168#issuecomment-2551838595, both GHA eval and ofborg eval do not catch some Darwin regressions. Both eval checks succeed but nixpkgs-review fails.

@FliegendeWurst is it because of unfree

@FliegendeWurst is it because of unfree

The package has license = lib.licenses.gpl2Only;.

@FliegendeWurst is it because of unfree

The package has license = lib.licenses.gpl2Only;.

Any unfree dependencies?

None: jdk21, openjfx21, maven, fetchFromGitHub, makeDesktopItem, copyDesktopItems, wrapGAppsHook3, gtk3.

Not very related to ofborg itself but now we have a nixpkgs-review bot based on GitHub Actions from Brazil :brazil:.
I trigger builds using a Telegram bot command and it notifies me back when all builds are done, and, of course nixpkgs-review post the comments on PRs.
A feature that we would like is some way to add a text into the comment so we could link to the workflow logs there.
This is the repo: https://github.com/nixosbrasil/nixpkgs-reviewd
If @lucasewd comments on any PR there it is because of this.

How reproducible is this? We could also try to increase swap if it happens rarely. But also I haven't seen this in a while. Is your pr maybe massively increasing regressing on memory usage?

Another eval failure on memory:
https://github.com/NixOS/nixpkgs/actions/runs/12468993409/job/34801318849

Oh thank you - I just say the message at the bottom stating how much memory is available and I thought it was because of this. Thank you and sorry for the noise :).

The This PR is is targeting a channel branch action fails even when the target branch was corrected:
https://github.com/NixOS/nixpkgs/actions/runs/12534682843/job/34956016297?pr=369067

Looks like GitHub is caching some variables (like branch info), even in subsequent re runs.
Should be fixed by a (force) push.
We can also configure the yml to run on edited events, (which includes base branch change event, pr body updated), like https://github.com/NixOS/nixpkgs/blob/adaa9f280329b5f814e8dc83eceddd42b20f72f4/.github/workflows/nixpkgs-vet.yml#L14C1-L14C51
Wish there was just a base_changed event though, but that's upto GitHub https://github.com/orgs/community/discussions/35058

The This PR is is targeting a channel branch action fails even when the target branch was corrected:
https://github.com/NixOS/nixpkgs/actions/runs/12534682843/job/34956016297?pr=369067

Couldn't this be solved by using GitHub branch protection rules/rulesets instead of a workflow?
Having to run a whole CI pipeline just to check that it's not - pointing to a branch seems really overkill when we could configure a rule to point to nixos-* and nixpkgs-* and then create a bot account that can bypass those rules.

https://github.com/NixOS/nixpkgs/actions/runs/12563383510/job/35025186249
out of memory

Some PRs eval "processing" seems to get failed, which fails subsequent Tag job.
Example: https://github.com/NixOS/nixpkgs/actions/runs/12563389748/job/35025265089?pr=369760 (https://github.com/NixOS/nixpkgs/pull/369760)

Some PRs eval "processing" seems to get failed, which fails subsequent Tag job.
Example: https://github.com/NixOS/nixpkgs/actions/runs/12563389748/job/35025265089?pr=369760 (#369760)

looks due to the out of memory failure in https://github.com/NixOS/nixpkgs/issues/355847#issuecomment-2566688172

https://github.com/NixOS/nixpkgs/actions/runs/12563383510/job/35025186249
out of memory (push to master -- subsequent count calculations will fail)

@paparodeo Perhaps we need to increase the swap size/add a swap. https://github.com/NixOS/nixpkgs/pull/356023#discussion_r1844925984