feat(circleci-plugin): incremental data collection

Summary
What does this PR do?
Incremental data collection for the CircleCI plugin.
Haven't swapped the extractor or converter to be incremental as this is enough for now to make a substantial difference in pipeline duration, but something to consider.
Does this close any open issues?
N/A
Screenshots
Full data collection:

Incremental data collection ran afterwards:

Other Information
Had to make some adjustments to the existing NewStatefulApiCollectorForFinalizableEntity function, namely:

Original implementation assumed all results on the page were invalid (ie. created before createdAfter) or valid (created after createdAfter), extended this to check each item in turn if required to prevent duplicate records.
For CircleCI jobs API there is no nice created_at property - we have to use started_at which may be null, therefore also added checks for time.IsZero(). We still collect the data if this is zero.

There are some annoying design choices around the jobs collection worth noting, we use the workflow/{id}/jobs endpoint to collect all jobs for a workflow on a single endpoint - as mentioned above this lacks a definitive created_at property, so we use started_at which may be null. Couple of ways round this:

We swap to use the job/{id} endpoint.

This returns different fields so would be more work to change this for the extractor etc
This returns a 404 for some statuses so we'd never collect this data
Would drastically increase the duration of what is an already slow collection (e.g. instead of making 1 request for 5 jobs, we'd need to make 5 separate requests).

If started_at is null for a selection of statuses we care about (e.g. running), then we give this a temp timestamp of time.Now()

Records would be recollected & corrected on the next run.
We're interfering with raw data in the DB which is dirty & could confuse users.

We check for IsZero() and collect these records anyway

Data collected exactly as per the API
Some of the jobs we collect have minimal value (eg. we'd collect blocked or unauthorized jobs)
Potentially unintended side-effects for other plugins

We use the created_at of the workflow (created_date on _tool_circleci_workflows) and extend _tool_circleci_jobs with a workflow_created_date column

As we collect all jobs for a workflow simultaneously we would only need to consider this timestamp
Data collected as per the API

I couldn't get 4) to work nicely in the GetCreated function, so have opted for 3), but open to other ideas/suggestions on how this could be implemented.

Hi, @Nickcw6 .  Thanks for your contribution. Do you think it is ready for review?

Hey @klesh - yes it is

Great work! I’ve noticed that you’re also collecting unfinished jobs. However, let’s revisit this based on some past discussions with other PPMCs and Committers. We concluded that perhaps we don’t need to collect them at all.
Most jobs tend to finish relatively quickly compared to our data collection frequency. Plus, the cherry on top: we don’t analyze pending jobs at all! 😂 So, for simplicity’s sake, I propose that we ignore pending jobs during collection.
Keep up the good work, and let’s streamline our process!

@klesh Thanks! I have pushed a small refactor commit.
Re: unfinished jobs - not sure I necessarily agree in this case. I'm not super familiar with other CI platforms but jobs in CircleCI are often statistically significant & not always that quick; in our case e.g. we have some relatively long running build jobs, and some of our deployment matchers are configured to look for a specific deploy-to-prod job. We definitely want to ensure these are collected at some point.
To ensure we still collect these, whilst not collecting unfinished jobs, we'd need to:

Add the logic to exclude any unfinished jobs
Check for unfinished workflows instead of unfinished jobs

100% agree we should be as aligned as possible but IMO this adds more complexity than the current approach of just collecting everything & recollecting any unfinished jobs... Unless I am missing something - open to suggestions :)

If I understand your point correctly:

Workflows might take a long time to complete, while the jobs within them finish relatively quickly.
You’re looking to collect data from those completed jobs within the still-running workflows for analysis.

Could you clarify a couple of points for me?

How long do these workflows typically take to finish, or are there cases where they never finish?
What type of analysis are you aiming to perform that requires data from the completed jobs within an ongoing workflow?

@klesh CircleCI is functionally layered as such (where the item to the left contains items to the right):
Pipelines -> Workflows -> Jobs -> Commands
Workflows and jobs (and to a lesser extent pipelines) are what are statistically significant. Commands are typically small blocks of code that make up jobs - there is no way to collect these and little value in doing so anyway (not sure if these are maybe referred to as jobs in other CI tools which is contributing to a misunderstanding here?)
For some context & a more concrete example: a pipeline is created upon merge to main. Within this pipeline we often have a generic workflow called deploy-to-env. Within this will be several jobs required for the deployment, one of which could be called update-prod-ecs.
As it is this update-prod-ecs job that actually indicates the production deployment has occurred, we need to ensure it is collected and should ideally try to collect its finalised state as soon as possible. We want to collect the finished deploy-to-env workflow too, as this details the entire deployment flow.
If a workflow is unfinished, then at least some of the jobs it contains will also be unfinished. With the current approach we'd mark both as such and recollect both next time. If we don't collect the unfinished jobs, then we'd need a mechanism to recollect these jobs based on the workflow being unfinished, which in my mind is more complicated than the current implementation.
In terms of your questions:

Workflow timings can vary depending on what is occurring - a build workflow may take up to 20 minutes, whereas a deployment pipeline may be ~2 minutes.
This is more a case of the statically relevant data (ie. a successful deployment has occurred) being available and so we should collect it so the data is as up to date as possible.


refactor(postgres): throw better error on connection fail

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme, or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[X] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
currently, if no connection can be established the error simply says
ECONNREFUSED: Failed to connect
When using db0 in e.g. Nitro this does not tell you a lot.
With this PR the message looks like this:
ECONNREFUSED: Failed to connect - could not connect to Postgres DB at ""
this clearly tells you that something is wrong with your postgres db
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

Note
currently, the connector in the postgresql.ts is called sqliteConnector. Which I don't think it should. If you agree let me know and I will quickly create a PR for it.

Hi dear @ToBinio thank you for the PR and sorry i am responding late.
I fully agree that it is not best DX that error is incomplete but i would suggest that we contribute to upstream brianc/node-postgres to improve DX. If it was not accepted we can rethink about it here.


Width of progressbar is wrong

 10% (1 of 10) |##                          | Elapsed Time: 0:00:00 ETA: 0:00:0
 20% (2 of 10) |#####                       | Elapsed Time: 0:00:00 ETA: 0:00:0
 30% (3 of 10) |########                    | Elapsed Time: 0:00:00 ETA: 0:00:0
 40% (4 of 10) |###########                 | Elapsed Time: 0:00:00 ETA: 0:00:0
 50% (5 of 10) |##############              | Elapsed Time: 0:00:00 ETA: 0:00:0
 60% (6 of 10) |################            | Elapsed Time: 0:00:00 ETA: 0:00:0
 70% (7 of 10) |###################         | Elapsed Time: 0:00:00 ETA: 0:00:0
 80% (8 of 10) |######################      | Elapsed Time: 0:00:00 ETA: 0:00:0
 90% (9 of 10) |#########################   | Elapsed Time: 0:00:00 ETA: 0:00:0
100% (10 of 10) |#############################| Elapsed Time: 0:00:01 Time: 1.00

arch linux, i3wm, rxvt-unicode-256 color
Also on windows in mysy2

It could be due to an old version but there's not really a mistake (in my case at least).
 10% (1 of 10) |##                          | Elapsed Time: 0:00:00 ETA: 0:00:00
 20% (2 of 10) |#####                       | Elapsed Time: 0:00:00 ETA: 0:00:00
 30% (3 of 10) |########                    | Elapsed Time: 0:00:00 ETA: 0:00:00
 40% (4 of 10) |###########                 | Elapsed Time: 0:00:00 ETA: 0:00:00
 50% (5 of 10) |##############              | Elapsed Time: 0:00:00 ETA: 0:00:00
 60% (6 of 10) |################            | Elapsed Time: 0:00:00 ETA: 0:00:00
 70% (7 of 10) |###################         | Elapsed Time: 0:00:00 ETA: 0:00:00
 80% (8 of 10) |######################      | Elapsed Time: 0:00:00 ETA: 0:00:00
 90% (9 of 10) |#########################   | Elapsed Time: 0:00:00 ETA: 0:00:00
100% (10 of 10) |#############################| Elapsed Time: 0:00:00 Time: 0.12

While it looks weird, it's just adjusting to the width of the terminal (80 characters) and at the last line the Time: 1.00 is less wide than the ETA: 0:00:0 which causes it to be wider. Also, the 10 of 10 is wider than 9 of 10 which causes it to move.
I'll see if I can make those (mostly) fixed size to make it cleaner.

Release 3.4.0 tries to make sure that the widgets always keep the same size. It won't work in all cases but many cases should be handled now.

Now i do not get any progressbar at all.
``100% (100 of 100) || Elapsed Time: 0:00:10 Time: 0:00:10-

That means something is wrong with the width detection... I tested it in several environments and it appeared to work but apparently it's still broken :(
Sorry about that, I'll have a look at it.

And on windows I get:
AttributeError: module 'signal' has no attribute 'SIGWINCH'

Oh, and I think you misunderstood: This is the exact output I posted.
Every time the progressbar was updated a new line was started, because it was slidly wider (1 or a feq charakters) than the line width.

That would actually be the effect if the width can't be detected. The bar should automatically resize to the size of your screen. But if your screen is somehow 0 (broken detection code), it makes the bar as small as possible. Regardless, it's significantly broken unfortunately :(
I've removed the release from pypi for the time being and I'll try to update the package soon.

Using blessings.Terminal gives me the correct results.

Just playing around a bit:
from blessings import Terminal
from time import sleep

t = Terminal()
with t.hidden_cursor():
    for i in range(101):
        percentage = '{:>3d} %'.format(i)
        start = '|'
        end = '|'

        barlength = t.width - (len(percentage) + len(start) + len(end))

        len_progress = max(int(round(barlength * (i/100), 0)) - 1, 0)
        bar = '=' * len_progress
        arrow = '>' if i < 100 else '='
        empty = ' ' * (barlength - len_progress - 1)

        full = percentage + start + bar + arrow + empty + end
        print('\r' + full, end='')
        print(t.move_right(1) + t.clear_eos, end='', flush=True)
        sleep(0.1)

Blessings is a very nice module as well, I've added the module as a width detection option for people that have it installed but it still has some detection if it's not available

Sorry for the trouble Max, I believe the current release should fix everything.

Ah yes. I think you forgot a debug output:
shutil 48 111

An idea: Elapsed Time: ... takes very much space. Could you maybe reduce the number of widgets automatically if the term width is so small, that no progressbar fits any more? First dropping Elapsed Time, than the ETA?

Oops... indeed, it's gone now :)
As for collapsing widgets, not impossible to achieve but I'm not sure how to implement that cleanly in the base code. Generally screens are fairly large these days but it's a bit of a waste of screenspace indeed.
I've just pushed out a new release that has support for something along those lines. Give this code a try:
import time
import progressbar

bar = progressbar.ProgressBar(widgets=[
    progressbar.Timer(min_width=200),
    progressbar.Bar(),
])
for i in bar(range(200)):
    time.sleep(0.1)

Note that the min_width and max_width settings indicate the width in characters, not pixels. So if the screen is at least 200 characters wide, the Timer will show.


record phony build task result as well

This pull request fixes a bug where if a phony build depends on another phony build, n2 will fail to resolve the dependency.

When running n2 with the following build.ninja file, n2 will report "n2: error: used generated file A, but has no dependency path to it," while ninja will correctly output [1/1] Checking.
rule CUSTOM_COMMAND
  command = $COMMAND
  description = $DESC

build A: phony B
build B: CUSTOM_COMMAND
  COMMAND = touch file
  DESC = Checking
build check: phony A

default check

This pattern can be observed in several CMake-based projects.
If the terminal phony rule specifies no explicit and actual output file and another phony rule transitively depends on it, n2 will fail to resolve the dependency.
However, n2 A will still work as expected.

This pull request is a very quick and dirty solution that I have found, and I hope you can develop a better one since this approach just mindlessly updates all the phony build states, which may impact performance.

Thanks for this! Let me think about it a bit.

Sorry for the delay.  The diagnosis and test were perfect, and I did a slightly different change that doesn't involve the disk in this case.

Thank you!


WinRM -SQL Server DB Deployment can't find SqlPackage.exe

I installed the Data-Tier Application Framework using the August 2016 x86 and x64 msi's as well as the version linked in the readme (July 2015) but the powershell script is unable to find SqlPackage.exe. It appears that the registry settings created/updated by the installers put information in:
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\Data-Tier Application Framework"
The script in the extension, however, is looking for a key called "DACFramework" instead of "Data-Tier Application Framework".

Hi Thanks for bringing it to our notice. Can you float PR if you have already fixed it for you?

I assume you are unblocked your self by using the dac framework installation link given in the readme. Can you please confirm

I used the installation links in the readme to begin with and that's when I received the error. I unblocked myself by hard coding the correct path into the Powershell script provided but I have not had time to go back and try and fix the powershell to work for all scenarios for a pull request.

Thanks for confirming we are addressing this soon.

Issue is fixed with 1.3.0 version release of the extension https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp. Closing the issue please feel free to re-open it if still face any issues

I am running version 1.3.9 and we are getting the error:
"Deployment failed on machine  with following message : System.Exception: Unable to find the location of Dac Framework (SqlPackage.exe) from registry on machine  Is this new or the same as above.


update setup

@juanjoDiaz I'm trying to make a fresh start before working on the rest, do you know why the tests fail?

Additional note: on my computer the language detection tests are failing but not the rest.

Hi @adbar ,
I just rebased #116 and tests are passing just fine.
I also run all tests from main on my local and they worked just fine.
So, the issue has to be something that you have changed in this PR.
All the failing tests exit with code 2, which means that the job was cancelled (probably because some other job failed).
Only tests (windows-latest, 3.8, true, true) exists with code 1 but doesn't show any different details.
Btw, is there any reason to don't merge outstanding PRs with passing tests before going back into new things?
I recently has to explain to someone how all the classes work and it was quite tedious without the public documentation introduced in #109.


Migrate to the new firebase_core

Followed the FlutterFire migration guide to use the new firebase_core and associated plugins. Did some testing to check if everything still works, and fixed some other bugs along the way and made minor improvements:

[x] Only show profile card and favourite websites card on home page if user is authenticated
[x] Fix delete() being called twice when deleting account
[x] Improve position of progress indicator on signup screen
[x] Stop setting Firebase displayName, we're not using it anyway
[x] Fix "Something went wrong" toast on signup
[x] Check if user data exists in website provider

Codecov Report

Merging #120 (7b29486) into master (4f659a3) will increase coverage by 0.05%.
The diff coverage is 16.03%.

@@            Coverage Diff             @@
##           master     #120      +/-   ##
==========================================
+ Coverage   69.36%   69.41%   +0.05%
==========================================
  Files          77       77
  Lines        6127     6124       -3
==========================================
+ Hits         4250     4251       +1
+ Misses       1877     1873       -4

Impacted Files
Coverage Δ

lib/authentication/service/auth_provider.dart
0.00% <0.00%> (ø)

lib/navigation/routes.dart
0.00% <ø> (ø)

lib/pages/classes/service/class_provider.dart
0.84% <0.00%> (ø)

lib/pages/faq/service/question_provider.dart
0.00% <0.00%> (ø)

lib/pages/filter/view/filter_dropdown.dart
87.50% <ø> (ø)

lib/pages/people/service/person_provider.dart
0.00% <0.00%> (ø)

lib/pages/portal/service/website_provider.dart
1.17% <0.00%> (-0.02%)
:arrow_down:

lib/pages/settings/service/request_provider.dart
0.00% <0.00%> (ø)

...ib/pages/timetable/service/uni_event_provider.dart
0.00% <0.00%> (ø)

lib/resources/storage/mobile_storage.dart
15.38% <0.00%> (ø)

... and 11 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #120 (7b29486) into master (4f659a3) will increase coverage by 0.05%.
The diff coverage is 16.03%.

@@            Coverage Diff             @@
##           master     #120      +/-   ##
==========================================
+ Coverage   69.36%   69.41%   +0.05%
==========================================
  Files          77       77
  Lines        6127     6124       -3
==========================================
+ Hits         4250     4251       +1
+ Misses       1877     1873       -4

Impacted Files
Coverage Δ

lib/authentication/service/auth_provider.dart
0.00% <0.00%> (ø)

lib/navigation/routes.dart
0.00% <ø> (ø)

lib/pages/classes/service/class_provider.dart
0.84% <0.00%> (ø)

lib/pages/faq/service/question_provider.dart
0.00% <0.00%> (ø)

lib/pages/filter/view/filter_dropdown.dart
87.50% <ø> (ø)

lib/pages/people/service/person_provider.dart
0.00% <0.00%> (ø)

lib/pages/portal/service/website_provider.dart
1.17% <0.00%> (-0.02%)
:arrow_down:

lib/pages/settings/service/request_provider.dart
0.00% <0.00%> (ø)

...ib/pages/timetable/service/uni_event_provider.dart
0.00% <0.00%> (ø)

lib/resources/storage/mobile_storage.dart
15.38% <0.00%> (ø)

... and 11 more

Continue to review full report at Codecov.

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


When property is not set.

I am targeting IAM roles that either haven't been used in a while, or haven't been used at all. The first one is pretty straightfoward:
resource-types:
  targets:
  - IAMRole
filters:
  IAMRole:
    - type: dateOlderThan
      property: LastUsedDate
      value: 8766h # 1 year

But is there a way to target a role where LastUsedDate is not set at all?

Hm. It doesn't seem to show roles with no LastUsedDate at all, even if I remove the filter, only roles with the property present.
Also I just realized, the filter seems to misfire as well, I see roles last used in 2024 too.

I'm not sure I follow, output would be helpful. I think what you are asking is can a filter be written to detect the lack of LastUsedDate property, then you are additionally trying to filter based on LastUsedDate being over 1 year ago.
dateOlderThan is a confusing filter action to be honest.

Yes, I need to detect and nuke roles that have never been used (LastUsedDate == null?) and ones that were used over a year ago. I am attaching 2 logs, one where nuke ran without filter, just target IAMRole, and another with dateOlderThan. Now that I see them together, I think they're identical.

Every single one in the no-filter has a LastUsedDate so I think we can table the checking for null for now.
Now the dateOtherThan is a terrible filter in my opinion and I want to re-write it, but haven't figured out how to yet.
Basically it doesn't work in my opinion the way most people expect ... https://github.com/ekristen/libnuke/blob/main/pkg/filter/filter.go#L128-L141
Basically it takes the duration, 8766h for example, adds it to the parsed time from LastUsedDate, so in this case, it's taking 2024-07-27T09:13:39Z from an IAMRole, adding 8766h to it, then checking to see if it is AFTER now.
If it is AFTER now, then it is filtered, if it is not after now, then it is not filtered.
However the inverse isn't really what you want either, as because subtracting 3677h from any value is going to make it before now.
I think we need a dateOlderThanNow filter.

You might be able to do -8766h with invert: true on the filter. That might work.

Tried with invert:true seems to have no effect, same list of roles is returned.

Take a look at the new filter I just added dateOlderThanNow you'll want invert: true -- I need to overhaul how all the filters work in the next major version I think or just add some better ones, not sure yet.
Check the docs out -- https://ekristen.github.io/aws-nuke/config-filtering/#dateolderthannow

This worked perfectly, thanks!


[]

Describe the bug
firebase_messaging: 6.0.12.     IOS:
The app first run ,the first message is ok ,but after show invalid registration.
{multicast_id:<PHONE_NUMBER>246239101, success: 1, failure: 0, canonical_ids: 0, results: [{message_id: 0:1584772819024939%de619279f9fd7ecd}]}
{multicast_id:<PHONE_NUMBER>861151724, success: 0, failure: 1, canonical_ids: 0, results: [{error: InvalidRegistration}]}
{multicast_id:<PHONE_NUMBER>744209514, success: 0, failure: 1, canonical_ids: 0, results: [{error: NotRegistered}]}
{multicast_id:<PHONE_NUMBER>90019037, success: 0, failure: 1, canonical_ids: 0, results: [{error: NotRegistered}]}
{multicast_id:<PHONE_NUMBER>666845957, success: 0, failure: 1, canonical_ids: 0, results: [{error: NotRegistered}]}
{multicast_id:<PHONE_NUMBER>411406592, success: 0, failure: 1, canonical_ids: 0, results: [{error: NotRegistered}]}
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.14.6 18G3020, locale zh-Hans-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
[✓] Android Studio (version 3.5)
[✓] Connected device (2 available)

Hi @Jackcui68
can you please provide your flutter run --verbose
and your pubspec.yaml
or if possible a reproducible minimal code sample.
Thank you

I have the same issue and it looks like similar to #1459


hide alchemy second blaze recipe and document it in tooltip instead

 yarden.zamir on Discord says

its too confusing as it is, a lot of people are not sure what the duplicate entries mean

I can only see one recipe now. Can this issue be closed?

 yarden.zamir on Discord says

I don't remember fixing it. to clarify I mean the recipes in the alchemy category, recipes that need the burner


SqlServer/SqliteServiceCollectionExtensions are in different folder structure

SqlServer puts it under Extensions.
SQLite puts it under Infrastructure.

Also move extensions for our types to the folder corresponding to the namespace.


Add Runtime specific runtime.pid

This resolves https://github.com/wso2/carbon-kernel/issues/1275

@daneshk : Just a suggestion. Instead of having merging branches, we can rebase it with our branch.


[bug]  is not appearing on red hat product trial center (ptc)

Describe the bug
https://www.redhat.com/en/products/trials
On this URL we have a tooltip next to the authentication button.

(This is the authenticated button, it has different text if you're not logged in).
On Chrome this tooltip is not working on hover.
Upon further research, it appears that the issue is down to the following CSS
:not(.initialized) #tooltip
Removing this style fixes the problem.
It is not especially clear when this problem came up though I saw it as early as last week but I was the only one seeing it at that time.
Which Component?
rh-tooltip
Steps to reproduce

Go to https://www.redhat.com/en/products/trials
Scroll down to the header for the product trial center
Hover over the tooltip next to the view my trials button

Expected behaviour
The tooltip should appear as it does on https://ux.redhat.com/elements/tooltip/demo/
Screenshots

Element HTML
No response
Operating System (OS)
macOS
Browser
Chrome
More browser information
No response
Additional Info
No response

this is a problem in chrome

I think you found a chrome rendering bug. regardless, we can probably work around this by inverting the sense of those selectors

https://github.com/RedHat-UX/red-hat-design-system/blame/bf0f15b1fa0f659c677d9b4f043393b50b71e028/elements/rh-tooltip/rh-tooltip.css#L79-L80
this is already fixed: update to 1.4.2


Minor fixes hardcoded maxt

maxt was hardcoded to 1000. led to crash when args.diffusion_steps was not 1000.
The readme command to run training on ISIC had --data_name ISIC missing.

Great! Thanks for your efforts.


param_qobj parameter is ignored by CircuitSampler

In https://github.com/Qiskit/qiskit-terra/pull/6357/files (May 2021) the parameter param_qobj is hardcoded as False, waiting for https://github.com/Qiskit/qiskit-aer/issues/1249 to merge (Aug 2021) and release (Sep 2021). This PR removes the hardcoded parameter and removes the TODO from the code.
PS: @manoelmarques, you might want to use TODO as part of the comment, since that helps to track this kind of pending things.

@adekusar-drl tried this in #8104, but there are tests failing in the measurement error mitigation. We already talked with @ikkoham who knows this code best and he said he'll have a look! 🙂

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
919 unchanged lines in 41 files lost coverage.
Overall coverage increased (+0.003%) to 84.605%

Files with Coverage Reduction
New Missed Lines
%

qiskit/pulse/instructions/directives.py
1
96.97%

qiskit/pulse/transforms/canonicalization.py
1
92.67%

src/sabre_swap/layer.rs
1
98.43%

qiskit/opflow/list_ops/tensored_op.py
1
91.49%

qiskit/transpiler/passes/layout/vf2_utils.py
2
98.47%

qiskit/utils/arithmetic.py
2
75.32%

qiskit/pulse/library/waveform.py
3
91.49%

qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py
3
92.74%

qiskit/algorithms/linear_solvers/matrices/tridiagonal_toeplitz.py
3
88.56%

qiskit/circuit/library/generalized_gates/permutation.py
3
86.36%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
62833

Relevant Lines:
74266

💛  - Coveralls


CRDs causes the whole K8s cluster not to work properly

k8s version: eks 1.22.9/k8s 1.22.9
harbor-operator crd version: 1.2.0
Creating a resource with any harbor-operator crd(eg: chartmuseums.goharbor.io) will result in a large number of internal error logs in the kube-crontroller-manager component log. The resources of the entire cluster cannot be deleted normally. eg: create a deployment resource, and then delete it, and you will find that the associated replicas and pod cannot be deleted.
like this:
$ kubectl create deployment myapp --image nginx:alpine
deployment.apps/myapp created
$ kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
myapp-7c5c94c888-wwz4k   1/1     Running   0          6s
$ kubectl delete deploy myapp
deployment.apps "myapp" deleted
$ kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
myapp-7c5c94c888-wwz4k   1/1     Running   0          14s
$ kubectl get rs
NAME               DESIRED   CURRENT   READY   AGE
myapp-7c5c94c888   1         1         1       14s

kube-controller-manager logs:
I0602 14:23:45.550212      11 resource_quota_controller.go:439] syncing resource quota controller with updated resources from discovery: added: [goharbor.io/v1beta1, Resource=chartmuseums], removed: []
--
I0602 14:23:45.550303      11 resource_quota_monitor.go:229] QuotaMonitor created object count evaluator for chartmuseums.goharbor.io
I0602 14:23:45.550333      11 shared_informer.go:240] Waiting for caches to sync for resource quota
E0602 14:23:45.598174      11 reflector.go:138] k8s.io/client-go/metadata/metadatainformer/informer.go:90: Failed to watch *v1.PartialObjectMetadata: failed to list *v1.PartialObjectMetadata: Internal error occurred: error resolving resource
I0602 14:23:45.910829      11 garbagecollector.go:213] syncing garbage collector with updated resources from discovery (attempt 1): added: [goharbor.io/v1beta1, Resource=chartmuseums], removed: []
I0602 14:23:45.915794      11 shared_informer.go:240] Waiting for caches to sync for garbage collector
E0602 14:23:47.040663      11 reflector.go:138] k8s.io/client-go/metadata/metadatainformer/informer.go:90: Failed to watch *v1.PartialObjectMetadata: failed to list *v1.PartialObjectMetadata: Internal error occurred: error resolving resource
E0602 14:23:48.874719      11 reflector.go:138] k8s.io/client-go/metadata/metadatainformer/informer.go:90: Failed to watch *v1.PartialObjectMetadata: failed to list *v1.PartialObjectMetadata: Internal error occurred: error resolving resource
E0602 14:23:54.341724      11 reflector.go:138] k8s.io/client-go/metadata/metadatainformer/informer.go:90: Failed to watch *v1.PartialObjectMetadata: failed to list *v1.PartialObjectMetadata: Internal error occurred: error resolving resource
E0602 14:24:03.826977      11 reflector.go:138] k8s.io/client-go/metadata/metadatainformer/informer.go:90: Failed to watch *v1.PartialObjectMetadata: failed to list *v1.PartialObjectMetadata: Internal error occurred: error resolving resource
I0602 14:24:15.550886      11 shared_informer.go:266] stop requested
E0602 14:24:15.550911      11 shared_informer.go:243] unable to sync caches for resource quota
E0602 14:24:15.550921      11 resource_quota_controller.go:452] timed out waiting for quota monitor sync
I0602 14:24:15.916805      11 shared_informer.go:266] stop requested
E0602 14:24:15.916826      11 shared_informer.go:243] unable to sync caches for garbage collector
E0602 14:24:15.916836      11 garbagecollector.go:242] timed out waiting for dependency graph builder sync during GC sync (attempt 1)
I0602 14:24:16.033309      11 garbagecollector.go:213] syncing garbage collector with updated resources from discovery (attempt 2): added: [goharbor.io/v1beta1, Resource=chartmuseums], removed: []
I0602 14:24:16.033381      11 shared_informer.go:240] Waiting for caches to sync for garbage collector
E0602 14:24:17.006428      11 reflector.go:138] k8s.io/client-go/metadata/metadatainformer/informer.go:90: Failed to watch *v1.PartialObjectMetadata: failed to list *v1.PartialObjectMetadata: Internal error occurred: error resolving resource
I0602 14:24:45.560876      11 resource_quota_controller.go:439] syncing resource quota controller with updated resources from discovery: added: [goharbor.io/v1beta1, Resource=chartmuseums], removed: []

Another thing, I found that there are a lot of key-value caBundle: Cg==  in the crd resource. After the CRD resource is created, this value is not replaced with something like caBundle: "Ci0tLS0tQk... < base64-encoded PEM bundle > .tLS0K". I don't know if it has any effect on this.
reproduce:

an eks 1.22 cluster environment
create a crd chartmuseums.goharbor.io
kubectl create deployment myapp
kubectl delete deployment myapp
kubectl get deploy,replicas,pod |grep myapp
result: replicasets and pod can not be deleted;kube-controller-manager will show many Internal error occurred

hi, do you install cert-manager

yeah sure。

I used Kind to create  a k8s cluster 1.22.9, which will reproduce the same issue.

After careful investigation, some resources are not installed properly during the installation of cert-manager or harbor-operator CRD, resulting in the failure of the caBundle: Cg==  in the CRD resource to be replaced by a valid certificate by cert-manager, resulting in problems with the kube-controller-manager component. After reinstalling cert-manager and harbor-operator normally, it will work properly. This root cause may require some updates upstream of Kubernetes. caBundle: Cg== will cause the whole cluster to crash.

We encounter the same issue and resolve it with AWS support. I think it is not related to cert manger.
As long as you have a crd with caBundle: Cg== it might trigger in garbagecollector which further pause the reconciling of all EKS resources.
We fixed it by identity why which CRD is with caBundle: Cg== and remove such filed.
A simply verification of whether your cluster might have this issue in EKS 1.22 is by running  kubectl get crd -o yaml | grep "caBundle: Cg==" -B 30


Cosmos Content Validation Issue for github.io website

Section link1:

Reason:
Typing annotation issue: Please unify the format, update to **kwargs:Any or **kwargs.

Section link1:

Reason:
Format validation Issue: Extra symbols _.
@rohit-ganguly, @lmazuel, @annatisch, @johanste for notification.

Close this issue as we'll put it into a summarzied one.


Support request forms and files in Google Cloud Functions

Failed to handle a multipart request in only Google Cloud Functions.
I fixed this bug.
And add a test for a multipart request.

I tested in Google Cloud Functions. And AWS, Azure.


unusable on an Android device

The onValueChange method of this library's infinite state checking is most likely to blame. If you add a console log to that method, the app may occasionally launch without rendering any screens or other components, or it may launch an endless number of times.

Hi @Anzormumladze , can you provide the code of the screen you used country picker component? I will reproduce and fix this issue. Thanks in advance


Optimise Scanner performance

Our project has a few larger templates. After going from Swift 3.1 to 4.1, we noticed a huge performance hit and narrowed it down to here. Under one files test case we are seeing improvements from over 8 seconds down to ~0.15 seconds on our Ubuntu server, and ~0.6 seconds down to ~0.15 on macOS. We are seeing about this performance ratio across all files.
This pull also includes the original scan(until: [String]) function rewritten, but this is about twice as slow as the scanForTokenStart approach.
Open to modifying if required.

I'd be keen to get this in, and drop Swift 3 support for next release.
@trametheka could you rebase this?

I'm afraid I no longer use stencil @yonaskolb and don't really have the time at the moment I'm sorry. You're certainly welcome to use the code in this PR if you can rebase it yourself.

Hey @yonaskolb 👋
#226 may be the rebase of this you wished for 😉


Just appreciation for all the hard work....

Thanks for the great plugin, it just works and no tweaking and stuffing around required.

Thanks for the kind words. And feel free to share Clap with more people, with more contributors, it could be better.


Update Podspec to the new project structure

This is a subspecs approach that mimics the SPM structure. The main problem with this is that only individual podspecs can be modules, so we don't get the modular separation of SPM.  A custom module map might be the solution, or podspecs for each module like Firebase does.

The issue with the .modulemap file arises when trying to define modules for both .a libraries and .framework libraries. Here’s how it usually looks:
module KSCrashCore {
    header "KSSystemCapabilities.h"
    header "NSError+SimpleConstructor.h"
    export *
}

module KSCrashFilters {
    header "KSCrashReportFilterAlert.h"
    header "KSCrashReportFilterAppleFmt.h"
    header "KSCrashReportFilterBasic.h"
    header "KSCrashReportFilterGZip.h"
    header "KSCrashReportFilterJSON.h"
    header "KSCrashReportFilterSets.h"
    header "KSCrashReportFilterStringify.h"
    export *
}

This setup works fine for .a libraries with use_modular_headers!. However, issues arise with .framework libraries as they require a framework declaration, leading to warnings like:
    - WARN  | [KSCrash/RecordingCore] xcodebuild:  /<user_path>/DerivedData/App-borbxcvqwzuqknepndaqdvyfloem/Build/Intermediates.noindex/Pods.build/Release-iphonesimulator/KSCrash.build/module.modulemap:44:12: warning: skipping 'KSDebug.h' because module declaration of 'KSCrashRecordingCore' lacks the 'framework' qualifier [-Wincomplete-framework-module-declaration]

Even if you specify modules with a framework tag, .a libraries typically work fine since CocoaPods automatically removes the framework specifier. However, this gets complicated with .frameworks, where things like "submodules" are necessary but restrictive due to the required folder structure and limitations in having multiple parallel framework modules. According to the official Clang documentation on module and submodule declarations, you can't just set up multiple parallel framework modules. If you use submodules, they require a specific folder structure which adds another layer of complexity.
So, we're left with these options:

Leave as is: Users will simply import KSCrash, and the module's contents will adjust based on the specified subspec. This approach leaves all "private" API modules exposed to the library users, which could be a downside if encapsulation is a concern.

Create separate podspecs for each module: This is the only straightforward method fully supported by CocoaPods for handling Clang/Swift modules. By defining separate podspecs, each module can be independently managed and integrated, although this approach increases maintenance overhead and complexity in project management.


A preview pane for Animations inAnimatedSprite

I remember that Game Maker had an animation preview for Animated Sprites.
Like this: https://youtu.be/5V5CIAmAtRU?t=1m44s
But when watching HeartBeast's Godot Platformer tutorial, I realized Godot doesn't have a previewer for Animations.
It makes it had to see how the animation plays and how fast it really looks.
We need a preview pane, maybe on the right or maybe left.
Then we can adjust speed and see if the animation plays nicely like how it's gonna look in the game and if it is missing any frames or looks bad.
Edit: It seems we can preview going to root of AnimatedSprite and selecting animation and checking Play. However this is hard to see if your speed is right. You need to set speed, repeat the whole process every time you change speed and want to preview.

Setting playing property to true will play the animation in the editor, which effectively previews it. In any case, this is a material for a proposal that should go to the official proposal repository.


Opening a second browser loads very slow

Is there an existing issue for this?

[X] I have searched the existing issues

Run a Diagnostic and Paste Link Here
I've installed DDEV following the instructions on the website. Now i'm running a empty PHP project, opening it in for a first time in Chrome loads fast. Now opening it in a incognito browser loads very slow. Is this a known issue maybe? It seems like there can only be one browser served or something...
Loading the URL through: https://<IP_ADDRESS>:49168/ seems to be fast, but https://ddev-project.development/ seems to give a problem.
Expected Behavior
Loading time should be fast
Actual Behavior
The browser loads very slow
Steps To Reproduce

Open a PHP project/url in your browser
Open the same project in a incognito browser.

Anything else?
No response

Seems to be fixed after reinstalling completely. Closing this for now.


[Event Request] Codeunit 81 - Sales-Post (Yes/No) - OnConfirmPostOnDocumentTypeIsOrder

Hi, would it possible to get an event OnConfirmPostOnDocumentTypeIsOrder in codeunit 81, procedure ConfirmPost, like this :

?
Thanks

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


az ml component create : Error with code: No value for given attribute

Hello,
I would like to create a custom component in AzureML.
This component is very basic. It generates a json file just by iterating over files in a storage.
I have only one input and i write the file in the same place than the input.
Related command
az ml component create --file create_metadata_jsonl_component.yaml -w $AZUREML_WORKSPACE_NAME --verbose
Extension name (the extension in question)
The problem is with azureml extension.
azure-cli                         2.47.0
core                              2.47.0
telemetry                          1.0.8
Extensions:
ml                                2.15.1
Dependencies:
msal                              1.20.0
azure-mgmt-resource               22.0.0
Description of issue (in as much detail as possible)
When i run my command, i have an error :
az ml component create --file create_metadata_jsonl_component.yaml -w $AZUREML_WORKSPACE_NAME --verbose
Error with code: No value for given attribute
Command ran in 1.127 seconds (init: 0.160, invoke: 0.966)

Here are my files :
# create_metadata_jsonl_component.yaml
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: create_metadata_jsonl
display_name: Create Metadata JsonL
version: 1
is_deterministic: false

code: ./

command: >-
  python create_metadata_jsonl.py
  --input_dir ${{inputs.input_dir}}

inputs:
  input_dir:
    type: uri_folder
    mode: rw_mount

environment:
  conda_file: ./conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04

# create_metadata_jsonl.py

import argparse
import os
from tqdm import tqdm
import logging
import json
from pathlib import Path
from mldesigner import command_component, Input, Output

EXTENSIONS= ['.jpg','.png','.jpeg','.bmp']
FILENAME = "metadata.jsonl"

parser = argparse.ArgumentParser()
parser.add_argument('--input_dir',type=str,help="Directory containing images")

def create_metadata_jsonl(input_dir:str):
    metadatas=[]
    for filename in tqdm(os.listdir(input_dir)):
        filepath = os.path.join(input_dir,filename)
        extension = os.path.splitext(filepath)[1]
        if not extension in EXTENSIONS:
            logging.info(f'{filepath} ignored because {extension} not in {EXTENSIONS}')
            continue
        if not os.path.isfile(filepath):
            logging.info(f'{filepath} ignored because it is not a file')

        file_caption = os.path.splitext(filename)[0]
        file_dict = {"file_name":filename,"text":file_caption}
        metadatas.append(file_dict)

    with open(os.path.join(input_dir,'metadata.jsonl'),'w') as jsf:
        for meta in metadatas:
            jsf.write(json.dumps(meta)+'\n')

if __name__=="__main__":
    args = parser.parse_args()
    create_metadata_jsonl(args.input_dir)

It seems very basic to me and i don't understand the issue.
Maybe the error code is not enough explicit.
It says that there is an issue with code: but code is present in my yaml file and i execute the code from the directory containing files.
If you have any idea of what went wrong.
thanks,
regards,

It seems the issue is with the command i run :
az ml component create --file create_metadata_jsonl_component.yaml -w $AZUREML_WORKSPACE_NAME --verbose

but i should run :
az ml component create \
    --file create_metadata_jsonl.yaml \
    --subscription $AZUREML_SUBSCRIPTION \
    --resource-group $AZUREML_RESSOURCE_GROUP \
    -w $AZUREML_WORKSPACE_NAME --verbose

we need to force the right subscription and ressource group in order to make sure there is no issue.
Anyway, as you saw, the error is completely out of scope and should be more explicit.
Some examples, to illustrate ...

az ml component create --file create_metadata_jsonl_component.yaml -w $AZUREML_WORKSPACE_NAME --verbose
---
Error with code: No value for given attribute
Command ran in 1.127 seconds (init: 0.160, invoke: 0.966)

az ml component create \
    --file create_metadata_jsonl_component.yaml \
    --resource-group $AZUREML_RESSOURCE_GROUP \
    -w $AZUREML_WORKSPACE_NAME --verbose

---
(AuthorizationFailed) The client<EMAIL_ADDRESS>with object id 'xxxxxx-xxx-xxx-xx-xxxxxxxx' does not have authorization to perform action 'Microsoft.MachineLearningServices/workspaces/datastores/read' over scope '/subscriptions/xxxxxx-xxx-xxx-xx-xxxxxxxx/resourceGroups/RESOURCE_GROUP/providers/Microsoft.MachineLearningServices/workspaces/WORKSPACE/datastores/workspaceblobstore' or the scope is invalid. If access was recently granted, please refresh your credentials.
Code: AuthorizationFailed
Message: The client<EMAIL_ADDRESS>with object id 'xxxxxx-xxx-xxx-xx-xxxxxxxx' does not have authorization to perform action 'Microsoft.MachineLearningServices/workspaces/datastores/read' over scope '/subscriptions/yyyyyy-yyyy-yyyyy-yyyyyyy-yyyyy/resourceGroups/RESOURCE_GROUP/providers/Microsoft.MachineLearningServices/workspaces/WORKSPACE/datastores/workspaceblobstore' or the scope is invalid. If access was recently granted, please refresh your credentials.

az ml component create \
    --file create_metadata_jsonl.yaml \
    --subscription $AZUREML_SUBSCRIPTION \
    --resource-group $AZUREML_RESSOURCE_GROUP \
    -w $AZUREML_WORKSPACE_NAME --verbose
----
Worked without issues

As you can see, depending on what we provide, it will work or not and with different errors that are not explicits.

Adding service team to look into this.
@azureml-github Could you please look into this once you get a chance ? Thanks in advance.

Hi, about az ml component create, you can refer to this docsite: https://learn.microsoft.com/en-us/cli/azure/ml/component?view=azure-cli-latest#az-ml-component-create

--subscription is a required param, if not set, it will raise "AuthorizationFailed  ****",  also you can configure the default subscription using az account set -s NAME_OR_ID, then you can just run:
az ml component create --file create_metadata_jsonl_component.yaml  --resource-group $AZUREML_RESSOURCE_GROUP -w $AZUREML_WORKSPACE_NAME --verbose

if you don't set default subcription, and run az ml component create --file create_metadata_jsonl_component.yaml -w $AZUREML_WORKSPACE_NAME --verbose. In my dev_branch, it will configure default resource group and subscription

and then raise error

Not sure why you will raise error like Error with code: No value for given attribute Command ran in 1.127 seconds (init: 0.160, invoke: 0.966) since I can't reproduce using the yaml you provide. Maybe could you please provide more specific error message or upgrade your cli extension version?


Lecture 5 Exercise 2.1 Mistake?

In the walkthrough video, only red(arr1) is determined to be "sus". However, red and teal are both functions which take in a pointer. Really, 4 of these function calls are erroneous. Perhaps the sample code should be
int main() {
  const int arr1[6] = { ... };
  int arr2[6] = { ... };

  teal(&arr1);
  red(&arr1);
  purple(arr1[0]);

  teal(&arr2);
  red(&arr2);
  purple(arr2[0]);
}

Thanks for reporting this issue!
It turns out that the exercise is well-formed, but it is out-of-date. I forgot to make an adjustment for this term. Prior to Fall 2024, EECS 280 used to cover raw arrays in C++, including a peculiar behavior called "array decay" where the compiler will insert an implicit conversion from an array to a pointer to its first element. So, an array of int may be passed to a function that takes an int * parameter, as in the exercise.
However, I had intended to update this exercise so that it didn't depend on arrays, since we haven't covered them yet. I'll fix this in a moment (while also configuring the exercise to accept any answers from the old version as well for participation credit).


Test creation: firstrun

NorthboundControllerAbstraction needs better coverage for testing.
add testing for  first_run to test_NorthBoundControllerAbstraction.py

I would be interested in taking this on (along with the entire bundle of other ones).

Go for it 👍

@pradyunsg, are you still working on this? If Not I'll take it over.

@d-grossman Thanks for asking!
Feel free to. :)


[renovate] consolidate PRs for Docker and Bazel

renovate bot groups all the updates for the "same dependency" into a single PR. As best I can tell, the name of the dependency is used to determine if two changes are for the same dependency.
The dependencies in Dockerfiles are named using the regex matcher:
https://github.com/googleapis/google-cloud-cpp/blob/17ee70bc4506e9afc7d0e6fe40566957dfeca281/.github/renovate.json#L11
They allow a certain amount of rewriting:
https://docs.renovatebot.com/configuration-options/#depnametemplate
With examples here:
https://docs.renovatebot.com/modules/manager/regex/#advanced-capture

This would be a cool cleanup.

I am going to mark this as closed.  @dbolduc fixed a bunch of these.  If we need this in more cases we should open more specific issues.


design documentation - add to archive

MRA design documentation added in folder documentation.

I miss the resulting MSL_reference_architecture.pdf.
How should people read the doc?
I guess this has to do with the create_mra_document.sh.
Maybe we can setup a pipeline and/or github.io or something like that.

I miss the resulting MSL_reference_architecture.pdf. How should people read the doc?
I guess this has to do with the create_mra_document.sh. Maybe we can setup a pipeline and/or github.io or something like that.

You can view the asciidoc documents in most IDEs. The major IDE's have support for asciidoc, just like they support markdown. You can also view in github, but the plantuml is not viewable in github.
Github supports Mermaid, but the Mermaid C4 plugin is complete.
We can perform an export to HTML. or generate the pdf file via the script.


Null Safety Support

Required changed are available in nullsafety branch

Waiting on args dependency to publish their null-safe version

Published first version: https://github.com/instantiations/es_compression/releases/tag/v2.0.0-nullsafety.0


Add tmux-split parameter to knife ssh

*Add ability to use tmux split window

this feels more like it ought to be an argument than a completely separate method of running. (ie: knife ssh --tmux-split true ... rather than knife ssh ... tmux-split)

perfect, thanks :+1:

:+1:


Fixes bugs in OSX dependency install

Fixes #16 and addresses similar bugs in debian scripts.

@cw75 https://github.com/andyli028/fluent/commit/1b2261dc81541cf2a185d3e6f9d73c0ba91730d0
the pr is not merged?

ok


use venv instead of virtualenv

virtualenv is an unnecessary dependency that can be removed

delaying this as it breaks python 3.8 on windows

maybe uv is a better fit


Install builder templates, worker jails as samples

The operator may wish to make local changes to these files so install them with the '.sample' suffix. If I remember correctly this is the way to install default or sample configurations on FreeBSD.
Closes #40

let's revise this: templates to be installed into etc/builder/sample-templates and read from etc/builder/templates. this is a breaking change for deployment, but makes installation (without overwriting stuff) easier.


mat-selection-list selects all when async update value of [selected]

Reproduction
Use StackBlitz to reproduce your issue: https://stackblitz.com/fork/components-issue
StackBlitz here : https://stackblitz.com/edit/components-issue-oawmjy
Steps to reproduce:

Clic on the first row
trigger a fake async call => data updated via Subject

Expected Behavior
What behavior were you expecting to see?
Only first row should be checked
Actual Behavior
What behavior did you actually see?
3. 2 rows are checked
Environment

Angular: 8.2.14
CDK/Material: 8.2.3
Browser(s): chrome
Operating System (e.g. Windows, macOS, Ubuntu):  Mac

Hi @crisbeto
Just saw your fix.
As a workaround, I could add a "non used" [value] at each option.
<mat-selection-list role="list">
    <mat-list-option role="listitem" *ngFor="let element of elements$ | async" #option
                     [selected]="element.selected" (click)="check()" [value]="element">
        <div>{{element.name}} {{element.selected}}</div>
    </mat-list-option>
</mat-selection-list>

It seems to work.
What do you think?
Thanks for the quick fix !!

Adding  [value]="item.id"   to mat-list-option fixed my problem.


update status for async_simple

I just realized we have async_simple in vcpkg (with a name 'async-simple' so I failed to get it).
I still hope we can have a line for seastar. Is it possible to a have an item in progress_overwrite.yml but not in raw_progress.yml?

Should be possible. But you have to call the python script in the repo the merge the two files, see readme.md

Done. Sorry for misreading.

See 3ef1f620c6de9d4ed3c767e6cf4e8dc36ddc744b


Update tested Julia versions in README.md

According to CI, the package is currently tested on the latest 1.x release (currently 1.5.4), 1.5.4 explicitly (redundant?) and nightly. However, the README.md says that Julia 1.1 and 1.3 are tested, which doesn't seem to be true. In this PR I update the corresponding line.
Feel free to edit further or close the PR if I misunderstood something.

Thanks, yeah, the README and docs are outdated.
And maybe I should save ci a bit and stop testing twice on Julia 1.5, or five out how to test on Julia 1.6 too before it's released. I recall something about a karot 1.6^.


Add additional address information for USA

Support should be added for additional address information for USA beyond just the state. This includes address line 1, city and postal (ZIP) code.

that said, this would be a great "Up for Grabs" issue for those who can submit a PR.

@PureKrome I already have. :)

Yep 😊 - just edited my reply. 😊

I'm conflicted on this one. It's the sort of feature that's potentially never done since there will always be a random city, state, county, province, district, locale, etc. that gets missed. I'm thinking NBuilder may have taken a wrong approach here. Perhaps it would be better to allow property assignment from a provided set of values.
I'm pseudocoding here, but something like:
var cities = new ValueSet<String>("Chicago", "New York", "Seattle", "Miami", "Los Angeles");
Builder<Product>
	.CreateListOfSize(10)
	.All()
	.Have(x => x.City = cities.Next())
	.Build();

Thoughts?

@crmckenzie Yeah I think that's a fine idea honestly. I see this functionality co-existing with your proposal above as there is already the GetRandom static class. There are two different usages that I see being common and valid. Some people may use this package just for generating random data explicitly using the GetRandom static class into existing objects. Others might use the more NBuilder-esque approach as you psuedocoded above where it generates the full object. I think both are great and both should be well supported.

I prefer the property assignment method. It always vexxes Non-USA people (which are a lot, for-the-record) that the data is only USA related.
Keep this data out of NBuilder and make it really easy to use .
For example, I just did a 1 sec google search and found a free list of USA cities/~postcodes~zipcodes/etc. If i manually download this file, write a line or two of code to read this data into a list, then provide that list to Nbuider (.Have(x => x.City = cities.Next())) then we're good to go!

Well, my thought was to introduce the property assignment method and mark the hard-coded lists as obsolete. That preserves the existing behavior for awhile while people get used to the newer, better method. ValueSet could also offer a Random() function as opposed to Next() just to keep things exciting and user-friendly.

It always vexxes Non-USA people (which are a lot, for-the-record)

@PureKrome do you have any data to support this assertion? lolz

Well, my thought was to introduce the property assignment method and mark the hard-coded lists as obsolete.

great! that's consistent with how MS does it (e.g. the good ole Binaryformatter Serializer). In a future major semver, it can then get removed.

do you have any data to support this assertion? lolz

:) i'll check with my American friends for some data.
oh
wait ....

        [Fact]
        public void Sample_UsingInABuilderContext()
        {
            var names = new ValueSet<string>("fredbob", "foobar", "pat boone", "debbie boone");

            var demos = new Builder()
                .CreateListOfSize<Demo>(5)
                .All()
                .With(row => row.Name = names.Next())
                .Build()
                ;

            demos[0].Name.ShouldBe("fredbob");
            demos[1].Name.ShouldBe("foobar");
            demos[4].Name.ShouldBe("fredbob");

        }

I just implemented this and it works nicely.

        [Fact]
        public void Random_ValuesAreGeneratedSomewhatRandomly()
        {
            var values = new string[] { "fredbob", "foobar", "pat boone", "debbie boone" };

            var results = new List<string>();
            for (var i = 0; i < 100; i++)
            {
                // The idea here is to create a new set every time with
                // enough delay so that seeding the random number generator
                // yields a different random sequence. By creatinga new set
                // every time, collecting the results, and asserting we have
                // a complete list of values, we confirm that we are indeed
                // getting all of the values even in the first call to Random()
                // on the set. This proves that we're not just reimplementing
                // Next()
                //
                System.Threading.Thread.Sleep(10);
                var set = new ValueSet<string>(values);
                results.Add(set.Random());
            }

            var unique = results.Distinct().OrderBy(value => value).ToHashSet<string>();
            var compare = values.OrderBy(value => value).ToHashSet<string>();

            unique.ShouldBe(compare);
        }

        [Fact]
        public void Random_AllValuesAreRepresentedInASufficientlyLargeDistribution()
        {
            var set = new ValueSet<string>("fredbob", "foobar", "pat boone", "debbie boone");

            var results = new List<string>();
            for (var i = 0; i< 100; i++)
            {
                results.Add(set.Random());
            }

            var unique = results.Distinct().OrderBy(value => value).ToHashSet<string>();
            var compare = set.OrderBy(value => value).ToHashSet<string>();

            unique.ShouldBe(compare);
       }

I thought I understood the new proposal at first, and now I think I don't. :D @crmckenzie Are you proposing that the consumer of NBuilder will be responsible for providing their own list for generating the random pieces like first/last names, cities, etc? I can kind of agree with this because it adds more flexibility, but I also find it an inconvenience. Personally speaking, I found that NBuilder having a built-in list already for me to be a huge benefit! I'm not sure which case would be more likely when we're talking about if the consumer would want to control the random data. What I mean by that is "Does it matter what the city winds up being?" Probably not. We just want something that is syntactically speaking, a valid city (for simplicity, let's just say that's any alphabetic string).
I think having a defaulted list inside of NBuilder is very useful, but providing the flexibility for the consumer to override those values is also very useful. Basically this makes it easy and useful no matter the scenario the consumer is in.

Are you proposing that the consumer of NBuilder will be responsible for providing their own list for generating the random pieces like first/last names, cities, etc?

I'm proposing preserving what's there, but moving it out of GetRandom while providing the ability for end-users to customize their needs through ValueSet.


referenced_list makes successful API call, but not showing in view

I have a referenced_list that is making a second API call.  I can see that it's making 2 API calls, and returning 2 responses, but the referenced_list data is not coming though in my view.  Is it possible the page is loading before the second API is finished?  If so, is there a way to make it wait for all data to load?  here is the relevant snippet in my code:
charactersummary.showView()
    .fields([
        nga.field('characterBase'),
        nga.field('inventory', 'referenced_list')
            .targetEntity(admin.getEntity('inventory'))
            .targetReferenceField('unique_id')
            .targetFields([
                nga.field('unique_id'),
            ]),
...

both API calls are successful (character and inventory), but only the character data is available in my showView.  Any help is greatly appreciated!

Hello, I'm a beginner
it might be better to use ".targetField" instead of ".targetFields"

Hello,
As explained in the README, the GitHub issue tracker is for bugs and enhancement requests.
So I close this issue, but feel free to write a question on StackOverflow with the tag ng-admin.
Thanks for using ng-admin!


Binary types should decode by default to ByteBuffer

See https://github.com/r2dbc/r2dbc-spi/blob/master/r2dbc-spec/src/main/asciidoc/data-types.adoc#datatypes.mapping.binary .
Should make default java type to ByteBuffer and support to decoding ByteBuffer.
Originally posted by @mp911de in https://github.com/mirromutth/r2dbc-mysql/issues/62#issuecomment-531269915

It solved by PR #65 , target version is 0.3.0.M3.


Removed public export and README mentions of addToActionGroup

Closing this to re-open against a long running feature branch


examples incorrectly encode key/salt into hex

The example files at https://github.com/imgproxy/imgproxy/tree/master/examples show the key and salt encoded into hexadecimal before sending to the server.  This is incorrect as it doesn't work in hex.  They should be a normal string.
The server environment variable stores the key and salt in hexadecimal but the client does not.

Hey!
Sorry, I don't understand what's wrong with storing key/salt pair on the client side encoded to hex.

When I send the key/salt to the server as hex encoded, the server gives an invalid signature or forbidden response.  However, when I send the key/salt to the server as an unencoded string it works fine.

Don't know if this is still an issue for you, but.
Taking the Go example, the key and the salt the way they are defined in the example ARE hex-encoded strings:
key := "943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881"
salt := "520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5"

They should be sent to the server just as they defined in the example:
IMGPROXY_KEY="943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881"
IMGPROXY_SALT="520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5"

Thus I don't see why you treat this as an error.

Don't know if this is still an issue for you, but.
Taking the Go example, the key and the salt the way they are defined in the example ARE hex-encoded strings:
key := "943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881"
salt := "520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5"

They should be sent to the server just as they defined in the example:
IMGPROXY_KEY="943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881"
IMGPROXY_SALT="520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5"

Thus I don't see why you treat this as an error.

Exactly, the key and salt should be sent to the server as they appear in the string.
However in the swift example it converts it to hex which is the issue.
let key = "943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881".hexadecimal()!;
let salt = "520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5".hexadecimal()!;

If you take out .hexadecimal()! the code will work.

Exactly, the key and salt should be sent to the server as they appear in the string.
However in the swift example it converts it to hex which is the issue.
let key = "943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881".hexadecimal()!;
let salt = "520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5".hexadecimal()!;

If you take out .hexadecimal()! the code will work.

I'm absolutely not familiar with Swift, but it looks like hexdecimal function decodes hex-encoded string that is correct approach.

I'm absolutely not familiar with Swift, but it looks like hexdecimal function decodes hex-encoded string that is correct approach.


MeteorFlux and ReactiveState available on the server

See issue #40 for discussion.

I do have peerlibrary:reactive-publish on the app where I need this, and reactive-publish adds Tracker on the server IIRC, but check out the tests. They're also executing on the server without any failure. I'll create a new app from zero just to test if everything is working.

meteor create foobar
[...]
➜ cp -r ~/Documentos/Dev/Git/meteorflux/packages/* packages/
➜ meteor add meteorflux:meteorflux
[...]
➜ meteor shell
> State
{ _NOTSET: undefined,
  _obj: {},
  _deps: { children: {}, dep: { _dependentsById: {} } },
  _beforeChangeCallbacks: [],
  _afterChangeCallbacks: [] }
> State.set('asd', 'dsa')
> State.get('asd')
'dsa'
> typeof Tracker
'object'
> new Tracker.Dependency()
{ _dependentsById: {} }
> typeof Tracker.autorun
'function'
> Tracker.autorun(function(){ console.info( State.get('foo') ) })

Everything seems to be working. Is there anything I am missing?

Yeah, it looks like Tracker is defined and working on the server:
https://github.com/meteor/meteor/blob/devel/packages/tracker/package.js
I thought it wasn't. This text is from the https://github.com/peerlibrary/meteor-server-autorun README.md:

While Meteor does provide Tracker.autorun on the server, it is not officially supported on the server and it has many limitations. For example, it cannot be used with fibers-enabled synchronous (blocking) code. This implementation cooperates nicely with fibers and preserves Meteor environment variables where necessary, allowing you to run any reactive code. Now you can really share the same code between client and server.

Do you want me to merge your PR now or wait until you have tested it further?

It is up to you. I am now using this on an app with SSR and everything is working as expected.
This shouldn't break any app, since the only thing that changed is that now we have State and MeteorFlux defined on the server.

Great @fermuch! Thanks :+1:

I will publish a new version in atmosphere. Thanks @fermuch.


Ambiguous S3FileSystem.isfile behavior when an object exists with a "/" suffix

I was debugging a problem with my pipeline, and I've reduced to the following code snippet:
import boto3
import pandas as pd

df = pd.DataFrame({"foo": ["a", "b"], "bar": [1,2]})
df.to_parquet("s3://my-bucket/dataset/", partition_cols=["foo"])
pd.read_parquet("s3://my-bucket/dataset/") # Works

# Now create an empty object with the dataset name:
s3 = boto3.client("s3")
s3.put_object(Bucket="my-bucket", Key="dataset/", Body=b"")
pd.read_parquet("s3://my-bucket/dataset/") # Throws FileNotFoundError
"""
File /nix/store/avq9131sdfjzn14fsilqgb0x3b76s6k7-python3-3.11.4-env/lib/python3.11/site-packages/pyarrow/fs.py:424, in FSSpecHandler.open_input_file(self, path)
    421 from pyarrow import PythonFile
    423 if not self.fs.isfile(path):
--> 424     raise FileNotFoundError(path)
    426 return PythonFile(self.fs.open(path, mode="rb"), mode="r")

FileNotFoundError: my-bucket/dataset/
"""

This is failing because pyarrow uses S3FileSystem.find("my-bucket/dataset", withdirs=True, detail=True) method to list all files in a partitioned parquet dataset, and s3fs is listing s3://my-bucket/dataset/ as a file and a directory, while S3FileSystem.isfile("s3://my-bucket/dataset/") is returning false. So I think there is an ambiguity happening here, as S3 doesn't have the concept of a directory.
Another example of the problem:
import boto3
import s3fs

boto3.put_object(Bucket="my-bucket", Key="fake_dir/", Body=b"")
boto3.put_object(Bucket="my-bucket", Key="fake_dir/file", Body=b"foo")

fs = s3fs.S3FileSystem()
fs.find("my-bucket/fake_dir", withdirs=True, detail=True)
result = {'my-bucket/fake_dir': {'Key': 'tmp/deleteme5',
  'Size': 0,
  'name': 'my-bucket/fake_dir',
  'StorageClass': 'DIRECTORY',
  'type': 'directory',
  'size': 0},
 'my-bucket/fake_dir/': {'Key': 'my-bucket/fake_dir/',
  'LastModified': datetime.datetime(2023, 9, 25, 13, 54, 48, tzinfo=tzutc()),
  'ETag': '"d41d8cd98f00b204e9800998ecf8427e"',
  'Size': 0,
  'StorageClass': 'STANDARD',
  'type': 'file',
  'size': 0,
  'name': 'my-bucket/fake_dir/'},
 'my-bucket/fake_dir/file': {'Key': 'my-bucket/fake_dir/file',
  'LastModified': datetime.datetime(2023, 9, 25, 13, 54, 54, tzinfo=tzutc()),
  'ETag': '"acbd18db4cc2f85cedef654fccc4a4d8"',
  'Size': 3,
  'StorageClass': 'STANDARD',
  'type': 'file',
  'size': 3,
  'name': 'my-bucket/fake_dir/file'}}

fs.isfile("my-bucket/fake_dir")  # False
fs.isfile("my-bucket/fake_dir/") # False

If you spend your whole life using s3fs and never go near boto3 directly then this problem doesn't occur as you cannot have both keys of "something/" and "something" as the former is treated just like the latter. And our test suite mostly checks internal consistency within s3fs so it doesn't test cases like this.
Supporting pre-existing "something/" as a file and "something" as a directory is, quite frankly, going to be a huge amount of work. Pretty much every fsspec or s3fs function calls _strip_protocol which drops trailing slashes, and in the few places where the trailing slash is important it is used to clarify that it means a directory not a file. Here we are looking at the opposite, without a trailing slash it is a directory and with a trailing slash it is a file.

I already "fixed" my pipeline by deleting all fake directory objects. I'm now investigating how they were created in the first place. I couldn't find any code doing something like this in my system. All we use is Pandas + Pyarrow + S3fs. Maybe a combination of version of those is creating the directory objects, don't know. I will investigate more.
@ianthomas23 Feel free to close the issue if you find it not worth it.

The main place I've seen these "placeholders" created is in the AWS S3 console, with the "create directory" button.

In my case, I had an object for every directory in my partitioned parquet. The dataset itself had an object as well. So this makes me think that was done programmatically in some way.


Update npm version

Hi, in npmjs.com choices version is 2.8.0,
and in this version don't work searchEnabled: false.

I've just published 2.8.3 to npm :)


Kustomize-controller error on reconciliation "dry-run failed, error: no matches for kind "ConfigMap" in version "v1"

All resources that are shared work fine on our previous kustomize-controller version of 0.15.0.   We are attempting to upgrade to 0.25.0 and upon doing so KS objects fail.  This issue is opened for one of those failure messages which is:
ConfigMap/kube-system/flux-test1 dry-run failed, error: no matches for kind "ConfigMap" in version "v1"

The configmap in question is as follows
flux-test1.yml
kind: ConfigMap
apiVersion: v1
metadata:
  name: flux-test1
  namespace: kube-system
data:
  main: flux-test1

Please upgrade to Flux 2.0 GA, this should be fixed.


⚠ Bofrost.fr has degraded performance

In 0274af8, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 2573 ms

Resolved: Bofrost.fr performance has improved in 313991d after 6 minutes.


Added initial link downloader

Current dependencies on/for this PR:

master

PR #5   👈

This stack of pull requests is managed by Graphite.


Revert "Tunnel: Add unit tests for port mapping"

This reverts commits which cause test failures:

757b6b2556c08f0cc0774aa10a4d9d32606fd810
84e5f9a43a03e97929749f41fa15a025f837bd24
308c48ea0e1788f5edcf6c7a34ecad28e817b1c6

The tests fail because they do some slightly sketchy mocking that
overrides a private method, which is mangled during
our optimization process.
https://github.com/microsoft/vscode/blob/ff23987823aaca66f5f0064b1200a568e59ba540/src/vs/workbench/test/electron-sandbox/resolveExternal.test.ts#L60
As they prevent us from building on main and there's not a clear fix I can make, this commit backs them
out for today. @orgads / @alexr00 please feel free to revert this
commit and fix the test. Thanks!

Oh gosh...
Can you please suggest a better way to mock?

Please consider removing only the tests instead of reverting the PR altogether.
I'll try to find a better solution for the tests later.
Before my PR, there were no tests for this feature anyway.

Thank you very much.


[Dart migration] The method 'nonNullAssert_end' was called on null.

While running the migration tool (for null-safety) I am encountering numerous errors. After the tool refused to help me because of a non null-safe dependency (an import of my own package that Im trying to migrate with it ^^) I now face a funny fatal exception, a method call on null <- In the null-safety migration tool O.o
NoSuchMethodError: The method 'nonNullAssert_end' was called on null.
Receiver: null
Tried calling: nonNullAssert_end(Instance of 'NullLiteralImpl') at offset 681 in R:\SOMEPATH\lib\redux\models\login\login_state.dart (null)

#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      MigrationResolutionHooksImpl._createNullCheckChange (package:nnbd_migration/src/fix_builder.dart:638:19)
#2      MigrationResolutionHooksImpl._createExpressionChange (package:nnbd_migration/src/fix_builder.dart:624:14)
#3      MigrationResolutionHooksImpl._addCastOrNullCheck (package:nnbd_migration/src/fix_builder.dart:590:18)
#4      MigrationResolutionHooksImpl._modifyRValueType (package:nnbd_migration/src/fix_builder.dart:726:14)
#5      MigrationResolutionHooksImpl.modifyExpressionType.<anonymous closure> (package:nnbd_migration/src/fix_builder.dart:540:16)
#6      MigrationResolutionHooksImpl._wrapExceptions (package:nnbd_migration/src/fix_builder.dart:826:21)
#7      MigrationResolutionHooksImpl.modifyExpressionType (package:nnbd_migration/src/fix_builder.dart:517:7)
#8      StaticTypeAnalyzer.recordStaticType (package:analyzer/src/generated/static_type_analyzer.dart:57:20)
#9      StaticTypeAnalyzer.visitNullLiteral (package:analyzer/src/generated/static_type_analyzer.dart:232:5)
#10     NullLiteralImpl.accept (package:analyzer/src/dart/ast/ast.dart:7708:50)
#11     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1882:10)
#12     UnifyingAstVisitor.visitNullLiteral (package:analyzer/dart/ast/visitor.dart:3382:44)
#13     ResolverVisitor.visitNullLiteral (package:analyzer/src/generated/resolver.dart:1888:11)
#14     NullLiteralImpl.accept (package:analyzer/src/dart/ast/ast.dart:7708:50)
#15     NamedExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:7289:17)
#16     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1880:10)
#17     UnifyingAstVisitor.visitNamedExpression (package:analyzer/dart/ast/visitor.dart:3368:52)
#18     ResolverVisitor.visitNamedExpression (package:analyzer/src/generated/resolver.dart:1870:11)
#19     NamedExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:7284:50)
#20     ResolverVisitor.visitArgumentList (package:analyzer/src/generated/resolver.dart:975:20)
#21     AnnotationResolver._constructorInvocation (package:analyzer/src/dart/resolver/annotation_resolver.dart:156:17)
#22     AnnotationResolver._classConstructorInvocation (package:analyzer/src/dart/resolver/annotation_resolver.dart:67:5)
#23     AnnotationResolver._resolve (package:analyzer/src/dart/resolver/annotation_resolver.dart:334:9)
#24     AnnotationResolver.resolve (package:analyzer/src/dart/resolver/annotation_resolver.dart:39:5)
#25     ResolverVisitor.visitAnnotation (package:analyzer/src/generated/resolver.dart:899:30)
#26     AnnotationImpl.accept (package:analyzer/src/dart/ast/ast.dart:302:50)
#27     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7517:20)
#28     AnnotatedNodeImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:145:17)
#29     FieldDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3940:11)
#30     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1880:10)
#31     UnifyingAstVisitor.visitFieldDeclaration (package:analyzer/dart/ast/visitor.dart:3248:54)
#32     ResolverVisitor.visitFieldDeclaration (package:analyzer/src/generated/resolver.dart:1470:13)
#33     FieldDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:3936:50)
#34     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7517:20)
#35     ScopedVisitor.visitClassMembersInScope (package:analyzer/src/generated/resolver.dart:2694:18)
#36     ScopedVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:2675:7)
#37     ResolverVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:1108:13)
#38     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1514:50)
#39     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1184:23)
#40     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2105:50)
#41     FixBuilder.visitAll (package:nnbd_migration/src/fix_builder.dart:210:12)
#42     NullabilityMigrationImpl.finalizeInput (package:nnbd_migration/src/nullability_migration_impl.dart:169:18)
#43     NonNullableFix.finalizeUnit (package:nnbd_migration/src/front_end/non_nullable_fix.dart:115:15)
#44     _FixCodeProcessor.runLaterPhases.<anonymous closure> (package:nnbd_migration/migration_cli.dart:1157:21)
#45     _FixCodeProcessor.runLaterPhases.<anonymous closure> (package:nnbd_migration/migration_cli.dart:1154:28)
#46     _FixCodeProcessor.processResources (package:nnbd_migration/migration_cli.dart:1079:30)
#47     _FixCodeProcessor.runLaterPhases (package:nnbd_migration/migration_cli.dart:1154:5)
<asynchronous suspension>
#48     MigrationCliRunner.run (package:nnbd_migration/migration_cli.dart:747:24)
<asynchronous suspension>
#49     MigrateCommand.run (package:nnbd_migration/migration_cli.dart:184:7)
<asynchronous suspension>
#50     CommandRunner.runCommand (package:args/command_runner.dart:196:13)
<asynchronous suspension>
#51     DartdevRunner.runCommand (package:dartdev/dartdev.dart:199:18)
<asynchronous suspension>
#52     runDartdev (package:dartdev/dartdev.dart:53:16)
<asynchronous suspension>
#53     main (file:///C:/b/s/w/ir/cache/builder/src/third_party/dart/pkg/dartdev/bin/dartdev.dart:11:3)
<asynchronous suspension>

I am running on Windows with the following versions:
Dart SDK version: 2.13.0 (stable) (Wed May 12 12:45:49 2021 +0200) on "windows_x64"

Flutter 2.2.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b22742018b (8 days ago) • 2021-05-14 19:12:57 -0700
Engine • revision a9d88a4d18
Tools • Dart 2.13.0

The file in question:
import 'package:json_annotation/json_annotation.dart';

import 'package:goapp/redux/models/login/login.dart';

part 'login_state.g.dart';

@JsonSerializable(explicitToJson: true)
class LoginState {
  DictLoginState loginDict;

  LoginState({
    this.loginDict,
  });

  factory LoginState.initial() => LoginState(
        loginDict: DictLoginState.initial(),
      );

  factory LoginState.fromJson(Map<String, dynamic> json) =>
      _$LoginStateFromJson(json);
  Map<String, dynamic> toJson() => _$LoginStateToJson(this);
}

@JsonSerializable(explicitToJson: true)
class DictLoginState {
  static getNull([_]) => null;

  @JsonKey(
    defaultValue: null,
    toJson: getNull,
    fromJson: getNull,
  )
  dynamic error;
  bool loading;
  Login data;

  DictLoginState({
    this.error,
    this.loading,
    this.data,
  });

  factory DictLoginState.initial() => DictLoginState(
        error: null,
        loading: false,
        data: Login.initial(),
      );

  factory DictLoginState.fromJson(Map<String, dynamic> json) =>
      _$DictLoginStateFromJson(json);
  Map<String, dynamic> toJson() => _$DictLoginStateToJson(this);
}

The problem seems to have something to do with the @JsonKey(... as it disappeares if I remove it. Specifically with  defaultValue: null.
The dart/flutter ecosystem is awesome and I am extremly grateful for all the work that went into it :)

As of 1c7fe7196dd7a542f7f91cd6ea2ac81e1a13146c, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.
If you still need help, or you believe this issue has been closed in error, please feel free to reopen.


fallback and fallbackLocale

Is your feature request related to a problem? Please describe.
No clear documentation guide to include fallback on the package doc site
Describe the solution you'd like
to provide a concrete documentation on the usage of fallback and fallback locale
Additional context
You can also provide a fallback component prop to show while waiting for the locale to load, and a fallbackLocale prop to specify a locale to fallback on if a key has not been translated.  copied from doc site

This will be solved by https://github.com/QuiiBz/next-international/pull/205, which removes the need for fallbackLocale inside I18nProviderClient.
The new documentation about fallback is simply:

You can also provide a fallback component prop to show while waiting for the locale to load.

Is that clear enough or do we still need to improve it?

helpful


Base 64

Add to tutorials, plus any other ones, like utf8

do we need to explain Convert.UseRFC4648Encoding = true;

Fixed in PR #450


Number of epochs for VOC07 / WSDDN difference for R50 and WSR50

WSR50 config has 160 epochs: https://github.com/shenyunhang/DRN-WSOD-pytorch/blob/DRN-WSOD/projects/WSL/configs/PascalVOC-Detection/wsddn_WSR_50_DC5_1x.yaml
R50 config has 28 epochs: https://github.com/shenyunhang/DRN-WSOD-pytorch/blob/DRN-WSOD/projects/WSL/configs/PascalVOC-Detection/wsddn_R_50_DC5_1x.yaml
(this is true for WSR and R configs in gneral)
Why is this the case?
Thanks!

By running https://github.com/shenyunhang/DRN-WSOD-pytorch/blob/DRN-WSOD/projects/WSL/configs/PascalVOC-Detection/wsddn_R_50_DC5_1x.yaml, I'm able to only get 29% CorLoc

We have also increased the training epochs for R50 and R18.
It seems adding more epochs for R50 and R18 does not help and may decrease performance for some backbone.
Also adding more epochs for WSR50 and WSR18 only improves WSDDN and does not help other methods.


Fixed Incorrect string value for unicode languages

The fix adds support for unicode languages in name

Hey @aliforever , thanks for PRs.
Can you give me an example of why we need these changes (maybe a screenshot)? For what language?

Hey @aliforever , thanks for PRs.
Can you give me an example of why we need these changes (maybe a screenshot)? For what language?

Hey there. The issue appeared for Arabic and Persian, when adding new categories or tags or etc, it gave illegal mixture error.
An example would be: تست

I didn't have problems with the given example.
As a tag works

As an account category also
It's important to have utf8mb4 database.


disables health check logs

they introduce noise in SpiceDB logs

Maybe we can set it so it only occurs when debug logging is set? When you first run something, it's super helpful to know if the healthcheck is reachable.

@jzelinskie please have another look. health check calls are now moved to debug level. It's not great because grpc middleware does not have native support for something like this, but the proposed approach gets the job done.


20602 — migrate PinButton to PressableWithoutFeedback

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/20602
PROPOSAL: https://github.com/Expensify/App/issues/20602
Tests

Log in
Select any chat from LHN
On the top right pin button should visible, verify that styling is unchanged
Click/Press the pin button verify that chat is being pinned or unpinned accordingly

[X] Verify that no errors appear in the JS console

Offline tests

Same as Test steps
QA Steps

Same as Test steps

[X] Verify that no errors appear in the JS console

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/61146594/0e629f5e-dea9-4817-a9cb-5db4c3fa3256

Mobile Web - Chrome
https://github.com/Expensify/App/assets/61146594/831e60d3-87c7-4fa9-9b4e-9914e62ad7fb

Mobile Web - Safari
https://github.com/Expensify/App/assets/61146594/ded7632a-30ed-4c95-ace3-7422f4e82cf7

Desktop
https://github.com/Expensify/App/assets/61146594/6e77c5b6-5e19-4c08-8ada-622d8ee9c45f

iOS
https://github.com/Expensify/App/assets/61146594/a54af7e4-e2f3-4ab6-a08c-111c7f2533c5

Android
https://github.com/Expensify/App/assets/61146594/1df372bb-af66-4640-93a5-d478023eca91

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.30-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.30-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add get_hostname and _SC_HOST_NAME_MAX to esp-idf

This PR adds:

gethostname
_SC_HOST_NAME_MAX

to espidf.

There is currently not a corresponding semver symbol check file (that I can find) for the ESP - am I looking in the wrong place?

@rustbot label stable-nominated

Closes #3748.

There is currently not a corresponding semver symbol check file (that I can find) for the ESP - am I looking in the wrong place?

There isn't one, but feel free to start one. It won't get checked against anything for now but we can add it in the future.

Closes #3748.

Goes in the PR description :)

Could you please add a link to the relevant headers providing these in the PR description?
@rustbot author
(just comment @rustbot review when it is ready for a look)

I'm having some trouble finding concrete definitions of HOST_NAME_MAX (or similar) in the ESP-IDF documentation or the newlib repo. Is it possible it's not defined in the IDF?

@rustbot review

I think this should be good, but it needs a rebase and to be marked ready for review. Unless you were waiting for confirmation on HOST_NAME_MAX?
@rustbot author

sort appears to change its behaviour based on the LC_COLLATE environment variable - may I suggest setting this in ci/style.sh to disambiguate the desired behaviour?

@rustbot review

sort appears to change its behaviour based on the LC_COLLATE environment variable - may I suggest setting this in ci/style.sh to disambiguate the desired sort order?

Good idea, done in https://github.com/rust-lang/libc/pull/4026