feat: sum transaction fees and pay on l1

Add totalFees to block header. Update the spec.
Note: we could have had the L1 rollup contract iterate over all the tx_effects and pay out that way. Doing it ourselves in the circuit feels cheaper though, and maybe safer for a world where:

tx_effects are spread over multiple l1 blocks
tx_effects are published as blobs so we wouldn't have direct access to math over them on l1.

Docs Preview
Hey there! 👋 You can check your preview at https://6647a26aa98b7914a6f579a5--aztec-docs-dev.netlify.app

Benchmark results
Metrics with a significant change:

app_circuit_proving_time_in_ms (FPC:fee_entrypoint_public): 16,481 (+91%)
protocol_circuit_witness_generation_time_in_ms (base-parity): 342 (+47%)
protocol_circuit_witness_generation_time_in_ms (public-kernel-setup): 451 (+18%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
772 (+4%)
772 (+4%)
772 (+4%)

l1_rollup_calldata_gas
6,832 (+2%)
6,868 (+3%)
6,868 (+3%)

l1_rollup_execution_gas
587,372
587,408
587,408

l2_block_processing_time_in_ms
1,622
6,055 (-1%)
12,074 (-1%)

l2_block_building_time_in_ms
35,353 (-1%)
138,783
277,500

l2_block_rollup_simulation_time_in_ms
35,131 (-1%)
137,993
275,954

l2_block_public_tx_process_time_in_ms
16,565 (-1%)
70,646
143,474 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
17,763 (-2%)
33,527 (-1%)

node_database_size_in_bytes
21,352,528
38,027,344

pxe_database_size_in_bytes
29,868
59,425

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
4096 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
13.2 (-1%)
21.4 (-1%)
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.7
31.8
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.770
0.659 (-1%)
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
61.5 (-1%)
97.0 (-1%)
315 (-1%)
608
1,196
2,374
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
543
1,055
2,079
4,127
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.632
0.600 (-1%)
0.574
0.568
0.568
0.567
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
74.0
143 (-1%)
455
892 (-1%)
1,779
3,548
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
106
208
692
1,363
2,707
5,395
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.646
0.646
0.619
0.615 (-1%)
0.617
0.618
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
80.7

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
108

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.710

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
84,347
673,175

Transaction size based on fee payment method
| Metric |  |
| - |  |
Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes
2 new note hashes

tx_pxe_processing_time_ms
37,774 (+1%)
3,666
114,540

Metric
0 public data writes
1 public data writes
2 public data writes
4 public data writes
8 public data writes

tx_sequencer_processing_time_ms
1,312 (-1%)
2,270
1,918
2,837 (-1%)
1,827


Change PHPDoc for unserialize

According official docs first parameter has string type and options parameter can't be null.
https://www.php.net/manual/en/function.unserialize.php
https://github.com/php/php-src/blob/beff93f60ddb330cc5b04d716af3ba9cba108c8e/ext/standard/basic_functions.stub.php#L1528

Great! Thank you for your contribution


No description of the access control types

You discuss how to change the access control mode but never state what the two entries are and why you would choose one over the other.

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

ID: c62e3725-b0dc-5ce5-c049-70fd3ae106e3
Version Independent ID: 9c0c5ef7-bd49-cb39-ca10-d98386004975
Content: Manage Log Analytics workspaces in Azure Monitor - Azure Monitor
Content Source: articles/azure-monitor/platform/manage-access.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @bwren
Microsoft Alias: bwren

@garybushey Thanks for your comment. We are actively looking into it and will get back to you shortly.

@garybushey Here is a document about the access control modes which details the information you have requested. Kindly go through it.
As there are no further documentation changes, we will close the issue for now.Kindly revert if you have further questions.


koreader: Add service unit

This PR adds a systemd service unit for starting KOReader at boot time (see #437). If KOReader fails to start, it falls back to Xochitl. It also updates the Xochitl service definition to alias to launcher.service; this is to prevent situations where both KOReader and Xochitl are enabled to start at boot time (see #438).

Good point, thanks! I added that.

Thanks for approving the PR—I had to push a new commit to fix the formatting, which auto-dismissed your review.

Changes look good, but I haven't tested.

I’ve performed the following tests on my rM2: checked that enabling the service does start KOReader at boot, that it’s not possible to enable both KOReader and Xochitl at the same time, and that the configure() script suggests the appropriate command for enabling KOReader, depending on whether Xochitl is enabled.
I don’t think there is any rM1-specific things in this PR, so it should work fine on rM1.

It looks like while you can't enable both tarnish and koreader with this, you can start them both at the same time. Is that expected?

Yes, this is unfortunate, but I didn’t find a clean way to prevent this. This is not a regression from the Conflicts=-based approach though, since even conflicting services can be started at the same time.


[flutter] use null aware operators for function invocations

In many cases the following pattern can be replaced with null aware operators.
if (callback != null)
  callback!();

To
callback?.call();

This doesn't work if there is an else clause or some additional check that must be peformed

FYI @a14n , this might be lintable, but there are many cases where it isn't a straightforward conversion

Tree is actually green, landing


[ll] Initial work for command buffer rework [37/..]

Following the approach presented by #1416

Rework Buffer trait to match the new RawCommandBuffer interface for primary command buffers
Implement strong-typed shims for command buffer types.
Add  RenderPassInlineEncoder as additional shim for renderpass handling
Start implementation of vulkan/dx12/(gl) command buffer reworks based on the corell backends
Merge Resources into Backend as it's easier to work with..
Add a few new resource types (renderpass, framebuffer, descriptorset, ...) and corresponding device creation methods but mostly to get the command buffer interface correct atm.

Current implementation issues:

dx12: Renderpasses need to be emulated, requiring to cache the current renderpass information in the command buffer. In the future we could optimize memory storage by storing these per command pool as we would only need one cache/pool instead of one cache/command buffer.

dx12: Indirect calls are more advanced compared to vulkan, therefore we need to create a few CommandSignatures upfront on initialization and share them with each command buffer, but shouldn't be a blocker.

cc #1102
Edit: separate branch similar to the old ll branch. It doesn't build yet, but to keep you updated from time to time..

The merging of Resources and Backend seems to do well.
All good stuff!

Edit: separate branch similar to the old ll branch. It doesn't build yet, but to keep you updated from time to time..

Hmm, this PR is targeted at master though. Is this a mistake?

Hmm, this PR is targeted at master though. Is this a mistake?

Oh, I need to create an empty branch first and push it..

Updated the ll branch to be even with master and retargeted the branch to ll.


rancher-compose links not configured correctly on container

rancher v0.25.0
rancher-compose v0.1.3
Link two containers using docker-compose.yml
nginx:
  image: nginx:1.9.2
  ports:
  - "80:80"
  - "443:443"
  links:
  - php-fpm
php-fpm:
  image: php:5.5-fpm
  ports:
  - "9000:9000"

After runninng Docker inspect on the nginx container, based on the documentation link below, all environment variables are set correctly but the HostConfig.Links value is null.
https://docs.docker.com/userguide/dockerlinks/#communication-across-links
Expected rancher-compose to function as docker-compose is documented to run.

Not an issue. Reseted it and had no problems.

@LyndonHook we emulate links since Docker doesn't natively support cross server linking.  That is why the Links inspect in null.  Besides the inspect being wrong everything else should behave the same as docker links.

Thanks Darren. I'm not sure why I had issues initially but I got it working after a complete rebuild of my VM's. I probably did something wrong the first time around.


hide members

just hiding members

Build failed because of:
Membership category "LFPH Member Products/Projects" does not have corresponding category in landscape.yml

LGTM


fix(moderation prompt): lower false positives in toxic category

Description
I tried a few variants locally (prompt/model combinations), and this was the best I found. (note: gpt-4o-mini is no good for this!).

updates open-ai from 4.52.0 to 4.58.1 (allowing for json_schema mode)
moderation agent now uses "json_schema" mode
adds a 'note' to the Toxic moderation category description
amends 'instruction' setting of the prompt
makes justification non-optional
filter categories by parent category score

Later will explore some more in-depth changes, but that would come with more risk associated, so want to do that when there's a dataset (and more time) to give the confidence required.
Issue(s)
https://www.notion.so/oaknationalacademy/Fix-moderation-bug-where-all-categories-get-flagged-3c93a1e819bb438f971187cb8be653bc
How to test

Moderation should generally work (e.g. test some sensitive and toxic material)

:tada: This PR is included in version 1.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Bug(widget.py): Line 856 - Image.CUBIC doesn't exist anymore, should be replaced with Image.Resampling.BICUBIC

Desktop (please complete the following information):
Python Version - 3.11.7
ttkbootstrap - 1.10.1
OS - Windows 11
Describe the bug
On line 856, within _draw_meter - Image.CUBIC isn't a resampling type.
All available resampling types available :
https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.resize
https://pillow.readthedocs.io/en/stable/handbook/concepts.html#concept-filters
Proposed replacement - Image.Resampling.BICUBIC
Once change, bug is fixed
To Reproduce
Attempting to use Meter from ttkbootstrap
exact call -
self.progress_meter = Meter(             self,             metersize=100,             padding=5,             amountused=self.progress_percent,             metertype="semi",             subtext="Progress",             interactive=False,             textright="%"         )
Expected behavior
No response
Screenshots

Additional context
No response

Please stop reporting issues about this error. It's already fixed — though that version is not yet on Pypi.


Event tracking for continuous functions

This is a feature request. At the moment, Diffrax only supports two types of events, DiscreteTerminatingEvent and SteadyStateEvent. For many applications (ODEs with collision or reflection, first passage problems for SDEs) it would be very convenient to have an event tracker as in SciPy's scipy.integrate.solve_ivp. This would allow the user to provide a real-valued, continuous function (state, **kwargs) -> float and use a root finder to determine precisely when this function crosses 0. At the moment, DiscreteTerminatingEvent will significantly overshoot the zero-crossing and I have to use additional post-processing. SciPy also allows the user to specify which directionality (i.e. from negative to postive or positive to negative) of a zero-crossing should terminate integration, which is very helpful in practice.

Haha, this is good timing! As it turns out this is something that we're working on at the moment.
Keep your eyes peeled :)

Regarding this continuous time event feature: Will the output of the ODE/SDE be differentiable wrt. to parameters in the cond_fn of the Event? If one wants to implement this functionality with the current version of diffrax how would you suggest them to proceed?

We now have a prototype of this feature in #387! It's very much a work-in-progress but folks should feel free to try it out and offer feedback.
Indeed we definitely should be differentiable with respect to the condition function for the event.
(Tagging also @cholberg here for visibility.)

Excellent, this looks like precisely what I need. Looking forward to trying it out!

Hi @patrick-kidger! I see that https://github.com/patrick-kidger/diffrax/pull/387 was just closed, I'm wondering what the status of the new Event functionality is? This is something that is being tabled for now, but may be reopened soon?

Closed by mistake only! :D


Anañadir algunos mandos importantes

Added a few important commands. How to exit insert mode and other ways to enter insert mode (a for append, o and O for new lines).

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 🎉


Wallet updates

Minor updates to the wallet page:

[x] Some assets should always be shown, even at 0 balance. Initially this is native tokens only.
[x] Changes/additions to the table buttons. Wrapped token will show issue, redeem, swap; all other tokens will show buy and bridge, and swap if relevant.
[x] Tooltip added next to ticker/logo.

https://www.figma.com/file/hY2nlOkOVrDNuXEp05hBRl/On-Ramp-Improvements?type=design&node-id=0-1&t=fMkMRxKNwXpv3kmf-0

Note: waiting on links for the tooltip, but otherwise this is completed.


Hidden options make keyboard navigation pretty hard

Hello,
when you hide a option and try to navigation through the option by using arrow up and down key on your keyboard the index seems to struggle since the option still exists but is hidden.
can you fix the index? it should not trigger hidden options.
here you can test it easy: https://jsfiddle.net/L92jz7ec/
but please dont remove the hidden options. this could break other functions.

Fixed in v1.13.13.

not really.. i tried v1.13.16.
https://jsfiddle.net/9z8mxtge/
reproduce it by clicking mustard and use key down. you need to press key twice to go to the other visible element.

In your example, you're hiding the option with class="hidden". This isn't supported. Simply add the hidden attribute instead.

how do I do so?

Instead of adding class="hidden" to each option, just add hidden.

ok this works. thx. didnt knew its valid html.
thanks for caring!


Update calling-sdk-features.md

Add notes for custom context

@sloanster
Can you respond to the comment above?
@MicrosoftDocs/public-repo-pr-review-team

I sent an email to the content owner today.


[bug] Sync problem

If set it, error not sync, even if it is fixed
"extensions.experimental.affinity": {
    "golang.go": 2
  }

I don't use Go.
If extension works fine but stops with "extensions.experimental.affinity" - then file an issue with VSCode repo.

I don't use Go.
If extension works fine but stops with "extensions.experimental.affinity" - then file an issue with VSCode repo.

hi,
I don't use Go, but I've also noticed several serious issues these past few days.
With the last update of VSCode and yours plugin, it feels like everything is broken.
I'm experiencing several minutes of latency between error messages.
Switching between two tabs instantly fixes the issue, but it's quite disruptive to have to switch tabs after each correction !
Moreover, I've wasted several minutes on a problem that was already solved before understand the issue .
I've tried several configurations in Error Lens: Delay Mode such as Debounce, old, new, but they're all broken at different levels!
I hope the VSCode team can guide you on this issue.
If you open a issue plz share i will got vote for bring this to priority !
I haven't been able to identify a triggering factor for this behavior, unfortunately.
Sorry to ne able to help you more.

Oki np, I'll will just wait a few week for Microsoft to fix the outstanding issues from the last update, there were some stability issues, including one I reported.
https://github.com/microsoft/vscode/issues/214496#event-13164443892
If there's no more information by ~ next week or more users with same issue, I'll will try take a day to try to understand where the "error-len" latency problem is coming from on my side !
I have very few plugins, but I don't really have a suitable environment for debugging VSCode extensions or collecting extensions data and with addition , I'm overloaded with a big project, so it's hard to take my focus off it for now.

@usernamehw I took a few minutes to make a video to clearly demonstrate the problem: Scrolling, saving, or triggering ESLint formatting does not update the error message.
Only switching to a different tab or waiting about 30 to 40 seconds will update the message.
This problem also occurs randomly, e.g. about 1/5 when i edit code.
some time it fast and instantly, sometime it juste idle !
It's very difficult to understand why !

ca3rfagaf3a3fg.webm
if you have any theory or want me testing fast setting, i take it !

update more info:

I disabled all the extensions and reactivated each one to see if it was an extension causing the issue:

Unfortunately, the problem persisted.

Then, I disabled all my VSCode settings in groups and reactivated each one to check if it was a setting causing the issue:

The clues led me to "typescript.tsserver.experimental.enableProjectDiagnostics": true, which allows scanning all open files at start vscode.
However, since yesterday, after reactivating all the exact same settings, I no longer have this latency issue!!!
everything responds in ~500ms as expected !
I don't understand it anymore!
Could the deactivation and reactivation of settings have fixed something in VSCode??
Or maybe I closed a file that contained code that was driving vscode-error-lens crazy?
i have more than 400 files and some files have weird template string and emoji !?
It's hard to say at this stage!
I will keep updated the issue, but my theory is that perhaps by activating "typescript.tsserver.experimental.enableProjectDiagnostics": true,, i have a specific file in the project workspace was breaking vscode-error-lens?
I haven't been able to reproduce this issue, but if it happens again in the coming weeks, I'll have more information to understand this behavior.

I also have high latency problems now with Typescript.

Closing - this issue is a mess now (multiple experimental settings relating to multiple issues => not actionable).


Setup Travis automatic tests

Needs #22 to be resolved first.

Don't know how to use travis but willing to help and ready to learn :)

@brouberol only you can setup Travis tests and build because the travis acount is linked to YOUR account. That's why only you can do it.
Also an automatic push on pypi would be awesome :)
Example travis build for a python package can be found there : https://github.com/thomas-maurice/dnsbin-cli

Fixed by #32


Different Coverage on Gitlab Runner

Hello,
I'm experiencing a different coverage percentage when the same tests suite is executed on a Gitlab runner (so under docker). A lower percentage actually.
In the tests suite there are tests using subprocess.Popen  that on Gitlab Runner are not "considered".
Testing locally on Linux (CentOS, archlinux, Ubuntu) works the same for all the distributions, getting higher coverage.
Do you have any hints to give? Is this normal?

It's hard to comment without details.  Subprocess measurement requires a little configuration, as described here: http://coverage.readthedocs.io/en/latest/subprocess.html

Ok. The thing that bothers me is that locally it works differently. I have the feeling that is docker-relate. I'll try to see on a docker runned locally.
I will try to set up a MWE.


iFrame Alternative

Maybe this can be used to solve Cross-Domain issues: http://ajaxian.com/index.php?s=transport.js&searchbutton=Go

i will maintain the apps

W.T.F !!!!!!!!!!!!!
horray!!!!


Support marking database notification as read from action

Package
filament/filament
Package Version
v2.16.62
Laravel Version
v.9.48.0
Livewire Version
v2.11.0
PHP Version
PHP 8.2
Problem description
When I click on an action button in a database notification, the notification is still remains marked as unread.
Submitted based on a Discord discussion with Dan
Expected behavior
It would be useful to have an option for marking the notification as read from the action and another one for removing it from the database.
Steps to reproduce
Any database notification.
Reproduction repository
https://github.com/filamentphp/demo
Relevant log output
No response

Removing a notification from the database on action click is already possible by calling ->close() on the notification action. Could you confirm that works for you, @molcsab?
Similar API could be implemented for marking as read. 👍

@zepfietje I think the main use case for this is an action (with a URL or something) and when you click on the URL, the notification is marked as read instantly before the user is redirected

@zepfietje I think the main use case for this is an action (with a URL or something) and when you click on the URL, the notification is marked as read instantly before the user is redirected

Yeah makes sense. Marking as read from action still needs to be implemented.

It doesn't work for me @zepfietje .
I use it like this:
Action::make('view')
      ->button()
      ->close()
      ->label('View')
      ->url(ActivityResource::getUrl('view', ['record' => $this->record]))
   ])

If I omit the button() option, then it removes the notification indeed.

Hmm, might it be that Alpine x-on:click and href don't work well together?
The close method is returned from getAlpineMountAction().
:x-on:click="$action->getAlpineMountAction()"
:wire:click="$action->getLivewireMountAction()"
:href="$isDisabled ? null : $url"

Implemented by #6570 in v3


Add link targets to examples in the documentation

It would be nice if examples in the documentation would be link targets, so that you can refer other users to exactly that example instead of saying "search for example 123 after this linked-to heading".

That's a great idea. Missed that a few times


Why is Python awesome?

Again, this is feedback from students last year. We do go into this in the introduction, but are there other examples we should use or points we should be sure to hit later in the day?

This isn't a specific example, but I've asked a couple of classes to think about a really repetitive part of their reporting workday or week. The things that end up eating up hours of time when you add it all up, like collecting information from a spreadsheet that gets updated regularly or a map they're trying to keep current online but they have to periodically punch in values by hand — stuff like that. That's my reason for Python being awesome: I can dump repetitive, mundane on the computer to have more time to work on things I wouldn't otherwise have time to do or get stories I wouldn't otherwise be able to get. My first Python script was this hacky thing that periodically scraped a county recorder's website for distressed properties when there was no other way to get them. The county's position was that by making the records available online, they fulfilled their obligations under open records law completely.

Good point! The epiphany of  "I'm actually doing something repetitive that
can be delegated to a computer" is still something many don't realize.
Once I was working on a quite big investigative project with 4 other
(completely nontechnical) people. At one meeting, I could not attend, they
have decided to create a spreadsheet of all side jobs of Dutch professors.
There are 12 universities and each has approximately 500 professors (you do
the math). They have then divided the universities between us and send them
around.
A week has passed and a day before the next meeting I have panicked, as I
still didn't get the uni assigned to me done. So in a couple of hours wrote
a simple scraper/ parser that could easily fill the spreadsheet with about
2000 rows (one job per row, as it was flat data and each professor could
have multiple side jobs). The next day I have arrived at the newsroom and
told my colleagues I have finished the job. They were looking at me
weirdly. "Wait, what? How?". I was confused. I took a peak into their
spreadsheets: none of them was further than 50 rows. Then I realized (in
horror mixed with amusement) that they were clicking through the websites
and copy-pasting everything. There goes your precious investigative
reporter time.
To be fair: In the end they did quite some hours of data cleaning, but that
time was still only a fraction of what it would cost to do everything
manually.
On Fri, Jan 29, 2016 at 8:06 PM, Alex Richards<EMAIL_ADDRESS>wrote:

This isn't a specific example, but I've asked a couple of classes to think
about a really repetitive part of their reporting workday or week. The
things that end up eating up hours of time when you add it all up, like
collecting information from a spreadsheet that gets updated regularly or a
map they're trying to keep current online but they have to periodically
punch in values by hand — stuff like that. That's my reason for Python
being awesome: I can dump repetitive, mundane on the computer to have more
time to work on things I wouldn't otherwise have time to do or get stories
I wouldn't otherwise be able to get. My first Python script was this hacky
thing that periodically scraped a county recorder's website for distressed
properties when there was no other way to get them. The county's position
was that by making the records available online, they fulfilled their
obligations under open records law completely.
—
Reply to this email directly or view it on GitHub
https://github.com/ireapps/pycar/issues/28#issuecomment-176915592.

--
Adriana Homolova
data journalist
+31-652245912 | 0F097E0F | @naberacka

Alex and Adriana, these are really helpful. I think we can use these examples in the introduction of the day and we might ask you to repeat these for the class. Thanks!


x/tools/gopls: gopls restart needed after changing build tags

With gopls on master (9580c84d5753ec8548a100560e8a2d94aeb99972), starting with:
-- foo.go --
package main

func main() {}
-- bar.go --
package main

func main() {}

Confirm you get "duplicate main" diagnostic
Add "//go:build ignore" to one of the files
Observe you still see the diagnostic until you restart gopls

This is just a bug: changes to build tags should (and probably do) invalidate packages.
The likely nature of this bug is that we don't clear diagnostics when the file is dropped from a package. I will fix this.

It looks like this bug is fixed at tip. Bisecting.

This was fixed by https://go.dev/cl/417576.  I'll close this with a passing regression test.
But the regtest I wrote is failing in the "experimental" mode. Investigating why...


Create inbound network component

Closes #1071.
I tried to fill in handling a Blocks request as a test of using the state service, but ran into similar bugs as in #1014.

Fixed the compilation error with a suggestion from @yaahc to avoid async blocks by using futures combinators.


Hide certifications header if there aren't any

Some services in lot 4 have no certifications but still show that section of attributes. They should hide them if this is the case.
See https://www.pivotaltracker.com/story/show/95242202 for reference.
Note: some of the tests for attributes with empty lists referenced the 'vendorCertifications' field so broke when this change was made. This pull request includes fixes for them.

I wonder if this could be more generic. I think that the generic case here is where you have

a list entry or a series of checkboxes
which are optional

This is data that is (mostly) held by the content repo at the moment—don't know if that integration is work that's worth doing now.

I talked to Cath about whether there was a generic need here but she said after going through the services this was the only field where it was a good idea to hide the absence of the data.
This is why I ended up making it as being very specific to that case.

@tombye OK, my other comment notwithstanding :+1: from me.


Login with OpenID Connect fails with "\xC5" from ASCII-8BIT to UTF-8

Dear All,
The installation is podified and httpd configured to have OIDC for SSO access.  Identification Provider has two different LDAP configurations.
Users logging in with DOMAIN-A configuration -which does not have non-ascii characters in LDAP Group users- are able to login, but in contrast, DOMAIN-B users which they have non-ascii characters in their Group name fails to do so.
I'm not certain if it's all about Turkish chars are braking the login mechanism, this is just my premature assumption regarding the error message, so please not solely focus on chars being in Turkish.
traceback I found
{
	"@timestamp": "2021-03-18T13:56:40.403568 ",
	"hostname": "8-ui-c544c5c5-f5cbl",
	"pid": 7,
	"tid": "2ae5593a9918",
	"level": "err",
	"message": "[Encoding::UndefinedConversionError]: \"\\xC4\" from ASCII-8BIT to UTF-8  Method:[block (2 levels) in <class:LogProxy>]"
}

{
	"@timestamp": "2021-03-18T13:57:46.674280 ",
	"hostname": "8-ui-c544c5c5-f5cbl",
	"pid": 7,
	"tid": "2ae55939e11c",
	"level": "err",
	"message": "MIQ(dashboard_controller-login): \"\\xC4\" from ASCII-8BIT to UTF-8"
}

"@timestamp":"2021-03-18T13:56:40.403797 ","hostname":"8-ui-c544c5c5-f5cbl","pid":7,"tid":"2ae5593a9918","level":"err","message":"/opt/IBM/infrastructure-management-gemset/gems/json-2.5.1/lib/json/common.rb:312:in `generate'\n/opt/IBM/infrastructure-management-gemset/gems/json-2.5.1/lib/json/common.rb:312:in `generate'\n/var/www/miq/vmdb/lib/vmdb/loggers/container_logger.rb:43:in `call'\n/usr/share/ruby/logger.rb:582:in `format_message'\n/usr/share/ruby/logger.rb:472:in `add'\n/opt/IBM/infrastructure-management-gemset/gems/activerecord-session_store-1.1.3/lib/active_record/session_store/extension/logger_silencer.rb:38:in `add_with_threadsafety'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/logger.rb:27:in `block (2 levels) in broadcast'\n/usr/share/ruby/logger.rb:525:in `info'\n/var/www/miq/vmdb/lib/vmdb/loggers/audit_logger.rb:4:in `success'\n/var/www/miq/vmdb/app/models/audit_event.rb:17:in `generate'\n/var/www/miq/vmdb/app/models/audit_event.rb:22:in `success'\n/var/www/miq/vmdb/app/models/authenticator/base.rb:339:in `audit_success'\n/var/www/miq/vmdb/app/models/authenticator/base.rb:72:in `authenticate'\n/var/www/miq/vmdb/app/models/user.rb:210:in `authenticate'\n/opt/IBM/infrastructure-management-gemset/bundler/gems/bluecf-ui-classic-701df99728eb/app/services/user_validation_service.rb:94:in `validate_user_kick_off_task'\n/opt/IBM/infrastructure-management-gemset/bundler/gems/bluecf-ui-classic-701df99728eb/app/services/user_validation_service.rb:18:in `validate_user'\n/opt/IBM/infrastructure-management-gemset/bundler/gems/bluecf-ui-classic-701df99728eb/app/controllers/dashboard_controller.rb:671:in `validate_user'\n/opt/IBM/infrastructure-management-gemset/bundler/gems/bluecf-ui-classic-701df99728eb/app/controllers/dashboard_controller.rb:720:in `identity_provider_login'\n/opt/IBM/infrastructure-management-gemset/bundler/gems/bluecf-ui-classic-701df99728eb/app/controllers/dashboard_controller.rb:494:in `oidc_login'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/base.rb:194:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/rendering.rb:30:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/callbacks.rb:42:in `block in process_action'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:132:in `run_callbacks'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/callbacks.rb:41:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/rescue.rb:22:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications.rb:168:in `block in instrument'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/instrumenter.rb:23:in `instrument'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications.rb:168:in `instrument'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/instrumentation.rb:32:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/activerecord-<IP_ADDRESS>/lib/active_record/railties/controller_runtime.rb:24:in `process_action'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/base.rb:134:in `process'\n/opt/IBM/infrastructure-management-gemset/gems/actionview-<IP_ADDRESS>/lib/action_view/rendering.rb:32:in `process'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal.rb:191:in `dispatch'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal.rb:252:in `dispatch'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/routing/route_set.rb:34:in `serve'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/journey/router.rb:52:in `block in serve'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/journey/router.rb:35:in `each'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/journey/router.rb:35:in `serve'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/routing/route_set.rb:840:in `call'\n/opt/IBM/infrastructure-management-gemset/bundler/gems/bluecf-graphql-f6cfe42626d1/lib/manageiq/graphql/rest_api_proxy.rb:18:in `call'\n/var/www/miq/vmdb/lib/request_started_on_middleware.rb:12:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/http/content_security_policy.rb:18:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/cookies.rb:670:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:98:in `run_callbacks'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/callbacks.rb:26:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/railties-<IP_ADDRESS>/lib/rails/rack/logger.rb:38:in `call_app'\n/opt/IBM/infrastructure-management-gemset/gems/railties-<IP_ADDRESS>/lib/rails/rack/logger.rb:28:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/request_id.rb:27:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/activesupport-<IP_ADDRESS>/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/executor.rb:14:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/secure_headers-3.9.0/lib/secure_headers/middleware.rb:12:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/railties-<IP_ADDRESS>/lib/rails/engine.rb:524:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/puma-4.3.7/lib/puma/configuration.rb:228:in `call'\n/opt/IBM/infrastructure-management-gemset/gems/puma-4.3.7/lib/puma/server.rb:713:in `handle_request'\n/opt/IBM/infrastructure-management-gemset/gems/puma-4.3.7/lib/puma/server.rb:472:in `process_client'\n/opt/IBM/infrastructure-management-gemset/gems/puma-4.3.7/lib/puma/server.rb:328:in `block in run'\n/opt/IBM/infrastructure-management-gemset/gems/puma-4.3.7/lib/puma/thread_pool.rb:134:in `block in spawn_thread'"}

SS:

I also have log files that I captured from UI-pods which I can not share in public domain.

https://github.com/ManageIQ/manageiq-ui-classic/issues/7689

Closing as duplicate of https://github.com/ManageIQ/manageiq-ui-classic/issues/7689


[WebApps] Browse command displays a seemingly inert error message

Description
When running the az webapp browse command, the following error message is printed in the terminal:
0:56: execution error: "http://<APP_NAME>.azurewebsites.net" doesn’t understand the “open location” message. (-1708)

However, the browser is launched and correctly navigated to the web app. Therefore, the error doesn't appear to impact the successful behavior of the command (at least at first glance). Additionally, if I add the -l flag, the log tail also seems to work, so the error message doesn't seem to impact that behavior either.

Environment summary
Install Method: How did you install the CLI? (e.g. pip, interactive script, apt-get, Docker, MSI, nightly)
Answer here: nightly
CLI Version: What version of the CLI and modules are installed? (Use az --version)
Answer here: nightly
OS Version: What OS and version are you using?
Answer here: macOS
Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows)
Answer here: bash

This is OSX sierra specific. Repro'd using python -m webbrowser -t msn.com. Reported as an OS level bug
I will fix this and #3608 by not going through python's webbrowser object


Update.md

Description:
Describe your proposal.
Justification:
Justification or a use case for your proposal.
Are you willing to submit a PR?

Description:
Describe your proposal.
Updating All
Justification:
Justification or a use case for your proposal.
@katelynnashley95icloudcom @clarkbw @bryanmacfarlane @chrispat @katelynnashley95icloudcom @
Are you willing to submit a PR?

Close as spam.


proposal: reconsider proposal review process

Proposal Details
The proposal review meeting (https://github.com/golang/go/issues/33502) regularly comments or updates open proposals. Especially one proposal- https://github.com/golang/go/issues/61417- has been stuck as "discussion ongoing" for months now. It remains unclear what is there to be discussed since the proposal has no open comments. It seems as if it is not reviewed in those meetings at all.
I'm kindly asking the proposal review process to actually review the open proposals instead of moving them as undead "actives" from meeting to meeting.

Similar Issues

Reopen proposal process for #61417 #64874
proposal: review meeting minutes #33502
proposal: separate proposal review from contended decision-making #33528
proposal: establish a mechanism to tracking the proposals #59453
proposal: Go 2 review meeting minutes #33892

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Patience is a virtue. An issue like https://github.com/golang/go/issues/36532 for example is much older than your issue (2020) and is only being considered now. Not all issues are equal. It seems the Go dev team has more urgent issues to deal with than yours.

@bjorndm's response may be a bit unintentionally harshly worded, but it's not wrong. The offered load on proposal review is far greater than we can serve, so we some things take a while. The oauth2 issue is waiting on me to dig into it and have time to really think about the path forward, and I have had other work-related responsibilities instead. My apologies that it is taking so long.

Sorry if I came off harsh, but the Go team is working hard and we should respect that. For this issue probably the fastest way forward is to use an open source third party library or to make a temporary fork of the oauth2 library and fix it yourself.


should 'electron-forge start' watch for changes to the main process?

Using all defaults and fresh install and the react-ts template, renderer updates show up via hmr but changes to main (index.ts) do nothing. Is there a way to get at least get a reload on any edit?

If we had "reload" support for the main process, we'd have to manage the Electron process more granularly (killing, making sure it's stopped, restarting), and I'd like to avoid that level of bookkeeping inside Electron Forge. (@MarshallOfSound please correct me if I'm wrong)

@malept We don't automatically reload the main process but you can type rs and hit enter and we'll relaunch your app (only in v6)

Interesting, I've added that to the start docs.

Hi everyone ! I am a little late to the party, but hope this will help someone (at least until HMR is fully implemented).
It is NOT HMR but it is a way to restart your electron main process AUTOMATICALLY (without typing rs on your console) .
package.json
npm i -D npm-watch
{
  ...
  "watch": {
    "restart-electron-app": {
      "patterns": [
        "workspaces/electron-app",
        "workspaces/shared-lib"
      ],
      "extensions": "ts,tsx"
    }
  },
  ...
  "scripts": {
    ...
    "start:electron-app": "npm-watch restart-electron-app",
    "restart-electron-app": "electron-forge start",
    ...
  }
}

Here is the project electron-angular-quick-start where I use this trick.
Feel free to use and share without restraint 😊

@aadiene Thanks, works well for my use-case. :)

For vite template users, one solution can be to edit vite.main.config.ts
import { defineConfig } from "vite";

// https://vitejs.dev/config
export default defineConfig({
  resolve: {
    // Some libs that can run in both Web and Node.js, such as `axios`, we need to tell Vite to build them in Node.js.
    browserField: false,
    mainFields: ["module", "jsnext:main", "jsnext"],
  },
  plugins: [
    {
      name: "restart",
      closeBundle() {
        process.stdin.emit("data", "rs");
      },
    },
  ],
});

@Aetherall solution works so well but I need to change it a little bit because browserField does not exist anymore
import { defineConfig } from "vite";

// https://vitejs.dev/config
export default defineConfig({
  resolve: {
    // For Node.js native modules
    conditions: ['node'], // this is the change
    mainFields: ["module", "jsnext:main", "jsnext"],
  },
  plugins: [
    {
      name: "restart",
      closeBundle() {
        process.stdin.emit("data", "rs");
      },
    },
  ],
});


Update onboarding based on team feedback

Feedback on onboarding from user meeting with @JBEmbedded and friends

[x]  links underline and different color
[x] "Please give us feedback" link
[x] Change KittyCAD to "Zoo"
[x] Change from "Camera", it's not super clear. Maybe movement, or mouse, or view
[x] Streaming video. Start with the why we're different. "Historically, CAD programs run on your computer."
[x] Make the onboarding headings pop more
[x] Stream text: Add a link to blog post
[x] Check if we have usage telemetry
[x] dimming is not effective in dark mode, make it more dramatic
[x] "KCL is our own language", don't bury the lead.
[x] KCL docs link on Text Editor page, but if you need blank, click the code menu
[x] Change title for parametric modeling step to be less dramatic
[x] Drawing in parametric makes JB think we can do assemblies, change that
[x] width is on line 3
[x] "Interactive numbers" not "Interactive Numbers"
[x] use <kbd> elements and style them a different color
[x] "We believe that editing code..."
[x] Fix the last sentence, it's no longer true
[x] Settings step, make it clear that we only have global settings right now
[x] Zoo logo shortcut to home (in desktop)
[x] When that change happens, also change the color or something to make it clickable separately
[x] casing is wrong on gLTF
[x] Link to David's talk
[x] Export dialog should say where the file will be saved
[x] Add description to fields like embedded
[x] Links to feedback and Discord
[x] Say how "w e'd love to see it", tag us on X

@Irev-Dev snapshots are updating because I tweaked the top bar to have a three-dot icon next to the project name and slightly different spacing between the logo and project name.

Gonna fix up whatever's wrong with the tests in the AM

The move camera tests failure is real, I was worried the test was flaky, but I can't move the camera at all on your branch.

snapshots are updating because I tweaked the top bar to h...

btw, it's possible to tell playwright to snapshot a smaller part of the screen, so we could do that to stop this kind of thing from happening, but doesn't seem like that much of a PITA yet.

The move camera tests failure is real, I was worried the test was flaky, but I can't move the camera at all on your branch.
Maybe mouse events getting not making it to the canvas?

Thanks for taking a look @Irev-Dev, sorry you had to do that. I think I know why. I tried to update the default camera controls to "Zoo" from "KittyCAD" and I think I bet I didn't update it in the default settings

I reverted the setting to be called "KittyCAD", because my changes to allow fallback to default values when a settings has an invalid one were in that reverted PR for file-based settings, so if I change the setting's name now it'll break a lot of people's experiences. I'll prioritize the new settings work so that I can get that stuff back in and safely make the change.


Respect common annotations on EntityViews for GraphQL type generations

We would like to improve the generated types for GraphQL so that one can use (more) of the common annotations on the EntityViews to let the type-generation understand, what should be done (like the annotations that are already respected to rename fields).
The aspects we are implementing are

javax.validation.constraints.NotNull - respect if a field should not be nullable, even though the hibernate entity might suggest / reflect it. Just to override that.
com.fasterxml.jackson.annotation.JsonIgnore - respect if a field is marked to be ignored (using thee usual jackson annotation)

After some thinking, I decided that I'd rather create custom annotations and also integrate with the annotations from the different GraphQL annotation providers for non-null and ignoring, as not every runtime uses Jackson.
For not-null, I will add support for the various non-null annotations though because a language level "non-null" annotation can be seen as a "strong" guarantee that this will really always be not null. A @JacksonIgnore might not mean that a field is ignored by every runtime and when using a view in different runtimes (WebMvc and GraphQL), one might want to differentiate if a field should be ignored in one runtime or another.

I can follow you on that.
But AFAIU you will support javax.validation.constraints.NotNull in addition, right?

@beikov AFAIR you implemented this now, right? (i assume this issue can be closed - IMHO)


GDExtension refactor: PropertyInfo code reuse

Small refactor which adds a constructor
explicit PropertyInfo(const GDNativePropertyInfo &pinfo)

and uses it in several places, where we need to convert the C struct to the C++ type.
In core/object/script_language_extension.h, the previous code passed twice class_name, but never name. The semantics change with this PR. Is my assumption that this was a mistake correct?
Two style-related points:

I wasn't entirely sure if the constructor should take its argument by const-pointer or const-reference, as I found both styles in Godot. Let me know if you prefer taking a pointer, I'll gladly change it.
A delegating constructor could be used instead of an initialization list, if you prefer.

Thanks a lot for the review!
 I should probably check my code the next day when working late 😬
I fixed it and also rebased it on latest master.

Thanks!


Feature request: Better certificate handling

It would be nice to have the following more options that will make this script absolutely complete:

When running it for the first time (deploying OpenVPN and settings) among the questions about rsa/ec dh/ecdh and curve, we should ask before generating the signing request for CA. This can be done using the var EASYRSA_CA_EXPIRE:

In how many days should the CA expire?
(Note: The CA certificate is authenticating the server and client certificates, thus it MUST have a much larger validity period)
Defaults to 3650 days.

Here user will enter 1 for default or 2 for custom period.

Before generating the server certificate sign request, we should ask for how much it should be valid for. This can be done using the EASYRSA_CERT_EXPIRE var. A message like this to be printed:

In how many days should the server certificate expire?
Defaults to 825 days

Here user will enter 1 for default or 2 for custom period AND if 2, user MUST not be allowed to enter a period greater than (>) period selected fro CA certificate before. Return and ask to enter again the expiration days with notification that it cannot be greater than CA, where CA expires in $ca_days.
Secondly, if script is run the second time (after OpenVPN has been installed), in addition to

Add a client
Remove a client
Uninstall OpenVPN

We should also have:

List all certificates
Here we will read the contents of /pki and display all the certificates with their respective CN, serial, expiration time, and days that it can be renewed before its expiration (the EASYRSA_CERT_RENEW value that was used at certificate generation time, currently defaults to 90 days).

After we list this information in a table, among Add a client and Remove a client we should also have Renew a certificate (that should also work for also for SERVER certificate and for clients certificates if they are within their CERT_RENEW time-window) and if selected, ask again for the var EASYRSA_CERT_EXPIRE how much it should be, otherwise fail down to the default.

Related #1072 that can be closed in favor of this one. If anyone is willing to do this I will send some beers in BTC.

Would love some nice PRs on this!

For the CA: export EASYRSA_CA_EXPIRE=$value
For certs: export EASYRSA_CERT_EXPIRE=$value
Otherwise, use option --days=$value on the command line.

There is this PR that partially tackles this: https://github.com/angristan/openvpn-install/pull/1060 but it's not mergeable.

Closing to keep things in https://github.com/angristan/openvpn-install/issues/974


Switch from immutable to ES6 Map/Set

They're at least an order of magnitude faster, especially for larger collections, and they consume less memory.  Maps and sets are central to quicktype's data structures, so I expect a big speed boost from this.
The main difficulty is handling cases where we need semantic equality, not just identity, which Map and Set don't support.  Type identity lookup needs this, for example.  One solution is to use Map as a low-level representation, and do the comparison ourselves.  For example, a Map<Foo, T> can be represented as a Map<number, [Foo, T][]>, where the keys are the hash values of the Foos, and the values are key-value pairs for keys of that hash.
Map and Set are also not immutable, but TypeScript provides ReadonlyMap and ReadonlySet interfaces, which we can use to at least ensure that our maps and sets can't be modified by where they shouldn't be.  We might want to add interfaces ImmutableMap and ImmutableSet that signify that nobody can modify them, i.e. they must either be copies or never again be modified.  Lots of our maps and sets are of the latter variety.
Here's a simple benchmark:
import { OrderedMap } from "immutable";

type Value = string;

function makeKey(i: number): Value {
    return i.toString();
}

const n = 100000;
const numRuns = 10;

const values: Value[] = [];
for (let i = 0; i < n; i++) {
    values.push(makeKey(i));
}

function keyFor(i: number): Value {
    return values[i];
}

function checkOrderedMap(m: OrderedMap<Value, number>): void {
    const arr = m.toArray();
    for (let i = 0; i < n; i++) {
        if (arr[i][0] !== keyFor(i) || arr[i][1] !== i) {
            throw new Error("not in order");
        }
    }
}

/*
function checkMap(m: Map<Value, number>): void {
    let i = 0;
    m.forEach((v, k) => {
        if (k !== keyFor(i) || v !== i) {
            throw new Error("not in order");
        }
        i += 1;
    });
    if (i !== n) {
        throw new Error("wrong count");
    }
}
*/

for (let run = 0; run < numRuns; run++) {
    let m = OrderedMap<string, number>().asMutable();
    // let m = new Map<Value, number>();
    for (let i = 0; i < n; i++) {
        m = m.set(keyFor(i), i);
        const step = Math.max(1, Math.floor(i / 10));
        for (let j = 0; j <= i; j += step) {
            const v = m.get(keyFor(j));
            if (v !== j) {
                throw new Error(`invalid value for ${j}: ${v}`);
            }
        }
    }

    checkOrderedMap(m);
    // checkMap(m);
}

console.log("done");

/*

startup:

real	0m0.674s
user	0m0.549s
sys	0m0.092s

const n = 100000;
const numRuns = 10;

OrderedMap, immutable:

real	0m5.680s
user	0m6.099s
sys	0m0.363s

OrderedMap.asMutable:

real	0m4.537s
user	0m4.903s
sys	0m0.326s

Map:

real	0m1.041s
user	0m0.904s
sys	0m0.117s

*/

Done in #868


[Blob] How does addRandomSuffix behave?

The documentation states that the default behaviour is false but it still adds a random suffix...
In the source the default behaviour is defined as true so at least the documentation can be updated to reflect that.
But after I tried explicitly defining the blob options with { addRandomSuffix: false }, it still adds a suffix...
Am I missing something?
This is my event handler:
import destr from 'destr';

export default defineEventHandler(async (event) => {
  const shopId = parseIdParam(event);
  const form = await readFormData(event);
  const file = form.get('file') as File;
  const metaData = destr<Record<string, string>>(form.get('metaData'), {});
  consola.debug('File:', file);
  consola.debug('Meta data:', metaData);

  if (!file || !file.size)
    throw createError({ statusCode: 400, message: 'No file provided' });

  ensureBlob(file, { maxSize: '1MB', types: ['image/jpeg'] });

  return hubBlob().put(`images/shop/${shopId}.jpg`, file, { addRandomSuffix: false });
});

shopId is a nano id (urxyfivpe2mg) but when I look in cloudflare I see the following urxyfivpe2mg-27828ff2.jpg
Also, would be cool if the blob admin could have folders like they have on the cloudflare dashboard.

Nice catch, opening a PR to fix the default behavior.
Regarding the admin could you please create an issue on https://github.com/nuxt-hub/feedback for the folders UI?


MRG: Use stable versions

6.0.0 for traitsui and pyface are out, let's see if this works. Also trying traits 4.6.0, but that might be too old and I'll have to revert that commit.

nice ! thx @larsoner


[stable/postgresql] revision 0.3.2

Changes:

update truncation to recommended practices
fix NOTES.txt for 1.5.x
fix newline in pvc

Where are the recommended practices for the deployment name specified?
Before this update, for the helm release "postgresql-test", the service would be called "postgresql-test-postgresql." This is consistent with what is set in other charts, e.g. "rabbitmq-test-rabbitmq", and so in my projects I have the hostname set to postgresql-test-postgresql.test-namespace.svc.cluster.local.
This change suddenly breaks those settings.

@michailbrynard from the changes here it doesn't look like the template for the name was changed at all, just that longer names were allowed. If the change to the name structure were to happen it should have been a major version bump indicated that a backwards compatible change was made.


python310Packages.sphinx-autoapi: 2.1.1 -> 3.0.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.sphinx-autoapi is: Provides 'autodoc' style documentation
meta.homepage for python310Packages.sphinx-autoapi is: https://github.com/readthedocs/sphinx-autoapi
meta.changelog for python310Packages.sphinx-autoapi is: https://github.com/readthedocs/sphinx-autoapi/blob/v3.0.0/CHANGELOG.rst
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.0.0 with grep in /nix/store/3j44dpcx2vb4vnp0752q53pz18afv8wx-python3.10-sphinx-autoapi-3.0.0
found 3.0.0 in filename of file in /nix/store/3j44dpcx2vb4vnp0752q53pz18afv8wx-python3.10-sphinx-autoapi-3.0.0

Rebuild report (if merged into master) (click to expand)

13 total rebuild path(s)

13 package rebuild(s)

First fifty rebuilds by attrpath
dnf5
khard
lbdb
python310Packages.sphinx-autoapi
python310Packages.sphinx-hoverxref
python310Packages.sphinx-notfound-page
python310Packages.sphinx-version-warning
python311Packages.sphinx-autoapi
python311Packages.sphinx-hoverxref
python311Packages.sphinx-notfound-page
python311Packages.sphinx-version-warning
rocmPackages.rocm-docs-core
rocmPackages_5.rocm-docs-core

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3j44dpcx2vb4vnp0752q53pz18afv8wx-python3.10-sphinx-autoapi-3.0.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.sphinx-autoapi https://github.com/r-ryantm/nixpkgs/archive/79284393c8d4d7fbcb0162413cb118520d51b5e0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/79284393c8d4d7fbcb0162413cb118520d51b5e0#python310Packages.sphinx-autoapi

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3j44dpcx2vb4vnp0752q53pz18afv8wx-python3.10-sphinx-autoapi-3.0.0
ls -la /nix/store/3j44dpcx2vb4vnp0752q53pz18afv8wx-python3.10-sphinx-autoapi-3.0.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

12 packages built:

dnf5
khard
lbdb
python310Packages.sphinx-autoapi
python310Packages.sphinx-hoverxref
python310Packages.sphinx-notfound-page
python310Packages.sphinx-version-warning
python311Packages.sphinx-autoapi
python311Packages.sphinx-hoverxref
python311Packages.sphinx-notfound-page
python311Packages.sphinx-version-warning
rocmPackages.rocm-docs-core

Maintainer pings
cc @karolchmist for testing.

I no longer use this package so can't really test it... Should I remove it from nixpkgs?


Fix relative paths in sed command.

The sed command fails to complete successfully. The problem is that the relative paths are wrong if you have already executed the prior cd command.

I just noticed this commit isn't consistent with the automated approach in build-infra.sh which instead would be to move the cd step into the next section as a precursor to running terraform. LMK, happy to edit.


AMBARI-24281. Infra Solr migration: migrationConfigGenerator script failed with custom service user

What changes were proposed in this pull request?
migrationConfigGenerator and migrationHelper does not work anymore with custom infra solr user (after some refactor) fixing this.
How was this patch tested?
manually
Please review @swagle

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3088/
Test PASSed.


Prompt to reopen and save file in admin mode on save of protected file

When attempting to save a file in Windows while not in administrator mode where the file is [protected|read-only|system] pops up a message that the save failed with options like save-as, retry, cancel.
Add an option to restart visual studio code in admin mode and save.
Try this in notepad++ for an example.

See #1614

Thanks @jontro
Duplicate of #1614


Make generator play nice with plugin imports

Referring to generator.go#L1353, it would be much preferred if plugins were asked to supply a list or map of imports and let the generateImports() method take care of ensuring uniqueness, emitting what is needed. As a plugin author I currently need to write intricate checks based on what comes in through  the generator.FileDescriptor. Right now, I'm getting an import emitted twice for some proto files, and once on other files.
A breaking change would be to change the signature of GenerateImports(file *generator.FileDescriptor) to return a slice of imports, but I'm guessing that wouldn't be acceptable. So perhaps a better alternative would be to add another interface, which if implemented by the plugin is called instead of GenerateImports.

The generator is documented as having no compatibility guarantees. Users of the API should vendor the generator.
That being said, the plugin API was primarily designed just for gRPC's use case and falls flat for other use cases and is definitely not considered stable.
A stable and more expressive API would be great, but it's not on the radar for the foreseeable future.


Should write output files to working directory not CmdStan directory

...and have an option to delete them all after running.

...and try to keep wmbatch.bat and winlog.txt in wdir too, if using Windows (reported by Daniel Furr - to avoid administrator write permissions problems)


Should keyof string mapped type equal keyof string index signature?

TypeScript Version:  3.4.1

Search Terms: mapped types keyof index signatures
Code
I understand that keyof on a string index signature returns string | number as per:

If X contains a string index signature, keyof X is a union of string, number, and the literal types representing symbol-like properties, otherwise

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html
https://stackoverflow.com/a/51808262/5932012

declare const key1: keyof { [key: string]: unknown }; // string | number

However, I want to ask why the same behaviour doesn't apply to Record<string, T> aka { [K in string]: T }:
declare const key2: keyof Record<string, unknown>; // string

I would expect keyof on the mapped type example to behave similarly to how it does with index signature example, because both objects can be used in the same way (number keys are coerced to strings):
{
    // number keys are coerced to strings when writing
    const obj1: { [key: string]: unknown } = {
        1: 'foo',
        foo: 'bar',
    };

    // number keys are coerced to strings when reading
    obj1['1'];
    obj1[1];
}

{
    // number keys are coerced to strings when writing
    const obj1: Record<string, unknown> = {
        1: 'foo',
        foo: 'bar',
    };

    // number keys are coerced to strings when reading
    obj1['1'];
    obj1[1];
}

The root cause here is #13715 and the assignability of numeric index signatures to string index signatures.
As for that behavior not applying to mapped types, well, producing different behavior is why we add different syntax.
For deeper research, start at #23592

Searching for an answer to this SO question brought me here.
Oddly enough, IntelliSense seems to hide the distinction between the mapped type and the string index signature:
type Index = { [x: string]: number };
// IntelliSense:
// type Index = {
//    [x: string]: number;
// }

type Mapped = { [x in string]: number };
// IntelliSense:
// type Mapped = {
//    [x: string]: number;
// }

Playground


Integrate this with spark-jobserver

To get this software running on spark-jobserver running on yarn in amazon emr - what do I need to do?

https://github.com/spark-jobserver/spark-jobserver/tree/master/job-server/src/main/resources/html
Do I need to replace the entire content of this, with the code present in spark-jobserver-frontend


VS for Mac never stops showing the Obliterating message

In the new VS for Mac extension, if you Obliterate output paths the message never stops showing in the header.

Appears to be fixed in the latest version. Thanks!


update tfjob yaml info

issue: https://github.com/kubeflow/website/issues/462

This change is

PTAL, @sarahmaddox

/assign @sarahmaddox

/lgtm
/approve
Thanks!


Fix scaleResolutionDownBy going below 1 for tiny portrait source

@hiroshihorie @davidliu this is reported by a user seen on a mobile device. With portrait inputs this becomes tricky to compute the right scale var.


Error running 'select function' command

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Configurations
Environments
Operations
See error

Expected behavior
A clear and concise description of what you expected to happen.
select tmp_db.hello('mike')
Run the above SQL causes an error:
Error: Error operating EXECUTE_STATEMENT: org.apache.spark.sql.AnalysisException: cannot resolve 'tmp_db.hello(mike)' given input columns: [tmp_db.hello(mike)];;
And SQL like this: select 'tmp_db.hello'
We see a problem here
https://github.com/yaooqinn/kyuubi/blob/master/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/operation/ExecuteStatement.scala#L78
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

can it pass on Kyuubi 1.0.3?

can it pass on Kyuubi 1.0.3?

Yes

could you help to verify https://github.com/yaooqinn/kyuubi/tree/397 for https://github.com/yaooqinn/kyuubi/pull/400


feat: split osd core test into ci groups

Description
OSD core contains more than 50 specs, with hundreds of tests getting ran sequentially. While many side effects are performed across test cases, It is usually the case that core dashboards test cases are failed or flaky, and hard to troubleshoot. In order to maintain a more stable test env and more reproducible CI, this PR split sanity test cases of core dashboards into CI groups.
In order to make this work, https://github.com/opensearch-project/opensearch-dashboards-functional-test/pull/1411 has to be merged in advance.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Convert back to draft because this would not work.
Due to our Jenkinsfile is checking if the component exist.
It is comparing the name of the component with the one in build manifest.
https://github.com/opensearch-project/opensearch-build/blob/main/jenkins/opensearch-dashboards/integ-test.jenkinsfile#L188-L192
We still need more changes if we want to get this in.
Thanks.

Taking a look on the jenkinsfile changes.

@peterzhuamazon https://github.com/opensearch-project/opensearch-build/blob/main/jenkins/opensearch-dashboards/integ-test.jenkinsfile#L188-L192

@peterzhuamazon https://github.com/opensearch-project/opensearch-build/blob/main/jenkins/opensearch-dashboards/integ-test.jenkinsfile#L188-L192 I do not have enough context on the code in build repo but is this line necessary? What will happen if we remove these lines.

This ensures that for the component for which the integration test is being run is actually present in the distribution artifact that is being used to spin up the OSD process. In the present scenario this is helpful when a component is passed in COMPONENT_NAME field but it is not present in build manifest of distribution artifact selected for that run.
When nothing is passed this list is same as component list in build manifest.
In your case I believe you can add an OR condition to check if the component name is of OpenSearch-Dashboards-ci-group pattern then continue as it corresponds to OSD and OSD will always be present in a valid build manifest.
Please correct me if I'm wrong @peterzhuamazon

@peterzhuamazon Update the jenkins file to get pass the check, how do you like the change?

This will still having issues due to the lib is using name to find components when calling test.sh.
Please wait for a bit before we sort this out.
We are very close to the release date and lets just rush to get this change in.
Thanks.

Dived a little deeper into the code and it is not as straight forward as it looks like. Simply adding OpenSearch-Dashboards-ci-group-* component in the test manifest will not work.
This is because here the passed component is verified against build manifest. If the component exists in build-manifest then the flow goes through, but since OpenSearch-Dashboards-ci-group-* is not a valid component the code will always throw an exception here.
Even though we try to fool it by adding a condition like invalid = [item for item in focus if item not in self and 'ci-group' not in item] it will error out  here.
This is not a straight forward problem to solve and we may need to revisit how to handle ci-groups in test manifest, maybe add a new key to the schema.
Thoughts @gaiksaya @peterzhuamazon
CC: @getsaurabh02

Dived a little deeper into the code and it is not as straight forward as it looks like. Simply adding OpenSearch-Dashboards-ci-group-* component in the test manifest will not work. This is because here the passed component is verified against build manifest. If the component exists in build-manifest then the flow goes through, but since OpenSearch-Dashboards-ci-group-* is not a valid component the code will always throw an exception here. Even though we try to fool it by adding a condition like invalid = [item for item in focus if item not in self and 'ci-group' not in item] it will error out here.
This is not a straight forward problem to solve and we may need to revisit how to handle ci-groups in test manifest, maybe add a new key to the schema. Thoughts @gaiksaya @peterzhuamazon CC: @getsaurabh02

Agreed with @rishabh6788 , we will need to implement this properly, without rushing for a quick change here.
Let's discuss more on this topic.
Thanks.

Dived a little deeper into the code and it is not as straight forward as it looks like. Simply adding OpenSearch-Dashboards-ci-group-* component in the test manifest will not work. This is because here the passed component is verified against build manifest. If the component exists in build-manifest then the flow goes through, but since OpenSearch-Dashboards-ci-group-* is not a valid component the code will always throw an exception here. Even though we try to fool it by adding a condition like invalid = [item for item in focus if item not in self and 'ci-group' not in item] it will error out here.
This is not a straight forward problem to solve and we may need to revisit how to handle ci-groups in test manifest, maybe add a new key to the schema. Thoughts @gaiksaya @peterzhuamazon CC: @getsaurabh02

Yes that is what I meant by my comment here https://github.com/opensearch-project/opensearch-build/pull/4784#discussion_r1643539535
One approach I can think of adding ci_group to the test manifest schema as an optional key. In this way you can add OpenSearch-Dashboards multiple times with different ci_group each time or just add range. But yeah needs to be thought through and not a straight forward implementation.

@rishabh6788 @gaiksaya what are the next steps here?

Adding new changes and test with:

https://github.com/opensearch-project/opensearch-build/pull/4796


Fixing typo

Summary
Fixing a typo
Details and comments
It's just a typo so I assume a CHANGLOG entry isn't desired

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