restic --no_symlink option (FEATURE)

Output of restic version
any
Expected behavior
$ restic --no_symlink [...]

will tell restic to totally ignore symlinks.
Do you have any idea what may have caused this?
Symlinks can be a real nightmare. If we can have an option to ignore them during the backup process, it'll be very useful. Not only they can create problem during backup, but also during restore (permission denied).

Thanks for leaving an issue. I don't understand what your use case is, could you elaborate a bit? Why are symlinks "a real nightmare"?
What's the problem with symlinks during backup that you mention?
Can you describe how to reproduce "permission denied" errors when restoring symlinks?

For example, on MacOS /etc is a symlink to /private/etc. If you try to restore it on let say /tmp, you get this:
ignoring error for /tmp/etc/xml/catalog: Lchown: lchown /tmp/etc/xml/catalog: operation not permitted
ignoring error for /tmp/etc/xml/catalog.old: Lchown: lchown /tmp/etc/xml/catalog.old: operation not permitted
ignoring error for /tmp/etc/xml/xml-core.xml: Lchown: lchown /tmp/etc/xml/xml-core.xml: operation not permitted
ignoring error for /tmp/etc/xml/xml-core.xml.old: Lchown: lchown /tmp/etc/xml/xml-core.xml.old: operation not permitted
ignoring error for /tmp/etc/zsh_command_not_found: Lchown: lchown /tmp/etc/zsh_command_not_found: operation not permitted
There were 2593 errors

In our case, we would like to ignore symlinks from our backups definitely.

Hm, if /etc is a symlink to /private/etc, and you've made a backup that includes /etc, then restic will archive the symlink (not the target it points to). In this case, it will restore a symlink at /tmp/etc. But the error messages you've listed show that restic restored something within /tmp/etc, so in this case /tmp/etc must be a directory not a symlink. Did I miss something?
The permission denied error occurs apparently because restore was run using an unprivileged user account, so running lchown to e.g. root is not permitted. This error will occur every time restic restore something that originally belonged to a different user. This is not limited to symlinks, but will also happen for files, dirs, pipes etc. I fail to see the point why we need code that handles symlinks different from the rest. Is there something I don't see?

@fd0 I've updated my answer above: /tmp is also a symlink to /private/tmp

So, then just use restic backup --exclude /etc --exclude /tmp --exclude /var? Or, use restic restore --exclued /tmp --exclude /var --exclude /etc. Isn't that enough?
To be clear here: I'm trying to understand if we need new code, because adding code in general and special cases in particular increase the maintenance of the project as a whole. And I need to live with that code afterwards :)

So, then just use restic backup --exclude /etc --exclude /tmp --exclude /var? Or, use restic restore --exclued /tmp --exclude /var --exclude /etc. Isn't that enough?

Not enough IMHO, let state it otherwise: how can i tell restic to backup everything in directory BUT symlinks?

restic backup --exclude-file $(find / -type l) /

The permission denied error occurs apparently because restore was run using an unprivileged user account, so running lchown to e.g. root is not permitted. This error will occur every time restic restore something that originally belonged to a different user. This is not limited to symlinks, but will also happen for files, dirs, pipes etc. I fail to see the point why we need code that handles symlinks different from the rest. Is there something I don't see?

Why then let a backup to be performed as a normal user (in this case me), when you know that the restore will certainly fail because of permissions to be set (root) :-) ?
Moreover, I've sudo power on this machine and I'm part of wheel group.

restic backup --exclude-file $(find / -type l) /

Not portable. A simple option can let us even do it on Windows

Why then let a backup to be performed as a normal user (in this case me), when you know that the restore will certainly fail because of permissions to be set (root) :-) ?

I don't understand this question, you ran restic, you instructed it to backup/restore. It tried, restored the files/symlinks and only complained that it is unable to set the ownership properly. For that, you could've started it as root...

Not portable. A simple option can let us even do it on Windows

Now you're deviating from the original problem/use case you described. Moreover: Are symlinks on Windows a thing?

I don't understand this question, [...], you could've started it as root...

We never run any script as root in our case.

We never run any script as root in our case.

So, what should restic do then? Call sudo on it's own? Where's the difference?

Now you're deviating from the original problem/use case you described. Moreover: Are symlinks on Windows a thing?

Not portable means even common tools (sed, find,etc.) don't expect the same arguments between unixes. And why we should rely on an external tool if this can be simply solved?

And why we should rely on an external tool if this can be simply solved?

Because each and every feature increases code complexity, may contain bugs or not handle corner cases properly, must be tested and increases the overall maintenance burden. So I'd in order to implement something you need to convince me first that it solves a problem, because I need to live with and maintain the code afterwards.

So, what should restic do then? Call sudo on it's own? Where's the difference?

Simply fails if we're trying to backup files/dirs that don't belong to the current user.
Or at least give us a warning.

Because each and every feature increases code complexity, [...], because I need to live with and maintain the code afterwards.

Your call.
Thanks for your time.

The policy for errors is: Print the error and warn the user, but then try to continue. backup works just fine apparently (if you haven't seen any errors), but for restore restic followed the policy and let you know that it was unable to do something.
It seem to me we won't agree on this matter (which is fine), so I'm closing the issue for now. If you (or anybody else) have other arguments, then please add another comment. I'm not convinced (yet, at least).
Thanks for your time and explanations.

The policy for errors is: Print the error and warn the user, but then try to continue. backup works just fine apparently (if you haven't seen any errors), but for restore restic followed the policy and let you know that it was unable to do something.

You backup something and you can restore it. Why for?

You backup something and you can restore it. Why for?

I'm sorry, I don't understand this question. Could you rephrase?

Symlinks on Windows

You backup something and you CAN'T restore it. Why for?

Thanks for the symlink link.

You backup something and you CAN'T restore it. Why for?

That's a question you need to ask yourself: If you run restore without enough permissions to restore metadata such as ownership, why blame restic that it is unable to do something you did not grant it permission?
From your comments I read that you suggest the backup operation should fail (hard, as in: exit with an error code) when restic can anticipate that it will not be able to restore the files to backup. Please correct me if I'm wrong on that.
I can see several problems here:

backup and restore are two different operations. Let's say restic should backup /etc/passwd, which is a world-readable file owned by root. During backup, restic is run as user nobody. When restore is run as the same user nobody, restoring the file will fail because nobody cannot write to /etc. Even if the file is restored to a different directory, say /tmp/restore/etc/passwd, the ownership cannot be set. Should the backup operation fail? In your suggestion it should, but how could restic during backup know what the user will be during restore? The other way around: Run backup as root (so that it won't fail in your suggestion), but how should restic know which user account will be used for restore? When restore is run as user nobody restore fails with the same error. How could restic detect this situation?
It would be a bad user experience for users who e.g. backup /usr as the user nobody when restic fails with an error that it probably won't be able to restore something. The users will wonder because for the operation at hand (backup), the privileges granted to the restic process are perfectly fine, because everything in /usr can be read by the user nobody.

Did I miss anything?

Perhaps we should split this ticket in two:

the hypothetical no symlinks feature.
the backup/restore permissions

I would like to continue here with a discussion on a portable way to exclude symlinks if you don't mind.

Good idea.
I'd like to summarize what I understood: You asked for an option to exclude all symlinks from being saved in a backup. For the reason you mentioned that symlinks can create problems during backup and restore, you only mentioned one problem for restore: Restic prints an error message when it is unable to set the correct ownership. When a lot of errors that are not relevant are printed it is easy to overlook really grave errors.
It feels to me as if there's an underlying issue, it may not even be about symlinks. I found the examples you included a bit confusing. Are you aware that the string lchown in the error messages is the name of a syscall used to set ownership on arbitrary items (files, dirs, symlinks, ...)?

I'd like to summarize what I understood: You asked for an option to exclude all symlinks from being saved in a backup. For a reason you mentioned that symlinks can create problems during backup and restore, you only mentioned one problem for restore: Restic prints an error message when it is unable to set the correct ownership. Is my summary accurate?

Correct ... this is exactly our concern.
As you may know it by now, we use restic extensively under Linux, MacOS, and also Windows.
Having an option to exclude symlinks in a portable way instead of relying on external tools (which may, or may not exist on different OSes) is a clear winner here.
Still, i see no reason for this new feature to affect anything in term of logic, as you already provide a good filtering mechanism (--exclude-file) based on filename patterns.
@fd0 Think of it as a complementary feature.
The permission issue described was just a side effect. I'll create a new ticket for it.

Ok, thanks for the confirmation. The permissions aside, could you please shed some light onto what problems you run into (or expect to run into) with symlinks during backup and restore, so I can better understand your situation/use case?


Monkeys missing!

Hi @Yomguithereal, it seems that monkeys go missing when using tree.set. Cerebral needs a way to reset the state of the tree. Currently I keep the initial state object before instantiation and create a new object where initial state object and new state is merged. Then I tree.set(newState) where I hoped monkeys would be picked up again... though they seem not to.
If there is a better way to reset the tree, let me know :-)

Okay, this was a deepmerge issue: https://github.com/Yomguithereal/baobab/issues/349


WIP: SARAALERT-770: Patient eligibility tests & supporting scopes

Description
Jira Ticket: SARAALERT-770
Write out a concise summary of this pull request and what it addresses.
(Feature) Demo/Screenshots
Insert demo video or photos for a new or updated feature or capability.
(Bugfix) How to Replicate
Insert steps for how to replicate the bug this PR addresses.
(Bugfix) Solution
Insert description for the solution this PR implements to address the bug.
Important Changes
Please list important files (meaning substantial or integral to the PR) along with a list of the general changes that should be highlighted for reviewers.
example_file.js

Example change (ex: refactored import function)

Testing
This fix was tested on the following browsers (submitter must check all those that apply):

[ ] Chrome
[ ] Firefox
[ ] Safari
[ ] IE11

Please describe the tests needed to verify your changes. Provide instructions for reproducing these tests. List any relevant details for your test configuration.

Please create a separate ticket in JIRA for tracking this task outside of 770.

Please create a separate ticket in JIRA for tracking this task outside of 770.

I think there is some further discussion to be had with the :has_not_reported_within_reporting_period and how it relates to the configurable reporting period and the notion of receiving notifications at preferred times.


Add built in support for validating options

From @Alxandr on Wednesday, August 23, 2017 4:37:39 AM
I just made an Option class that takes strings that are required to be a certain format. I would like the configuration to fail after hydration if the values provided are invalid. A good example is if you need an email (ignoring how hard it can be to validate emails).
Today I can solve this by creating an IPostConfigureOptions that resolves to a ValidateOptions class that checks if the options in question implement an IValidatable interface, and if so calls Validate().
It would, however, be preferable if I knew that validation always ran last (after all post configure handlers - if any). Therefore I suggest adding first class support for IValidateOptions which runs after runs after IPostConfigureOptions. This interface would behave the exact same as IPostConfigureOptions, except it would be guaranteed to run after all IPostConfigureOptions.
It can also be discussed whether or not default implementation that does something similar to my described ValidateOptions class would be useful.
Copied from original issue: aspnet/Options#227

From @MaKCbIMKo on Friday, August 25, 2017 2:40:03 AM
I think this is something similar with what you're looking for.
Am I right?

From @HaoK on Friday, August 25, 2017 2:54:58 AM
This feature is on our radar, I'm not sure when we will add first class support for validation of options, (today we roll our own validation pattern in Auth), but sooner or later this seems like something Options should support in a first class way.
cc @divega @ajcvickers @davidfowl

From @MaKCbIMKo on Tuesday, August 29, 2017 6:29:25 AM
Some time ago I was thinking about being able to validate options. In my opinion, this is really useful feature - being able to validate options and handle invalid scenarios.
Moreover, I was looking for possibility to validate all registered options at start-up time (not only when it will be required) - this is just a simple early problem detection.
For that purpose I have created PR (https://github.com/aspnet/Options/pull/171) which adds the possibility to configure the validation of option that's going after all configure steps. And that PR introduces the possibility to validate all options at the start up time.

Is this dead? I saw the PR and comments so I'm not sure why it's closed.
The use case seems obvious. There are things like API keys which if not configured correctly can result in serious problem in production. Some support to at least mark properties as [Required] could make a big difference.

Its not dead, but needs more votes/requests for its priority to go up

How do I vote? :)

I think you already have :)

I'll bring this up again as a potential feature for 2.2, but compelling scenarios that would be enabled, like maybe describing how you'd like something like [Required] to work might help.  We would probably use something like that in Security for auth as well, as we have a few features that we'd require to be configured, like client id/secret

Oh good :)
Uhm, let's see. I guess it depends on what the application is and what it does and what's acceptable as misconfiguration.
In my case, it would make sense for the application to fail to load completely and trigger an exception handler (which would go to App Insights and I'd get notified and revert the deployment).
I say that's the only thing that makes sense because the app can't function without the keys that were missing and there's no way for me or the app to guess them or provide defaults.
I imagine however that this is possible in some other cases (to provide defaults) so perhaps an enum-style flag can be passed somewhere to say "fail" or "revert to defaults". It would make sense to me that the defaults are either provided by another file and/or by constructing a new options object.

https://github.com/aspnet/Options/pull/266


Remove attribute protocol from wasm.

Codecov Report

Merging #727 into master will decrease coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #727      +/-   ##
==========================================
- Coverage   45.19%   45.18%   -0.02%
==========================================
  Files          81       81
  Lines       16337    16343       +6
  Branches     4031     4042      +11
==========================================
  Hits         7384     7384
- Misses       7148     7154       +6
  Partials     1805     1805

Impacted Files
Coverage Δ

vm/src/pyobject.rs
56.54% <ø> (ø)
:arrow_up:

wasm/lib/src/browser_module.rs
0% <0%> (ø)
:arrow_up:

wasm/lib/src/convert.rs
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


IP used to send messages through Office 365

Hi! Can you add information what IPs are being used by the Office 365 Send an email action? It's necessary to detect if message was sent by Flow in transport rules. I can see that from my European environment it is using <IP_ADDRESS> address so it's out of range for IPs for Europe.

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

ID: 0a7b1f84-92bd-7188-a7d0-359a930525dd
Version Independent ID: dd7d2d01-bdee-b656-ca63-e19305963d28
Content: Limits and configuration - Microsoft Flow
Content Source: flow-docs/limits-and-config.md
Service: flow
GitHub Login: @stepsic-microsoft-com
Microsoft Alias: stepsic

@Larryngolog  Thanks for using Power Automate. This IP address is documented in the linked "office 365 and urls page here: https://docs.microsoft.com/office365/enterprise/urls-and-ip-address-ranges#microsoft-365-common-and-office-online

@MSFTMan can you please point exactly where is it documented? In the article you have pointed to there is no reference to "Flow" or "Power Automate" or anything that points to sending emails by flow


Added missing brackets on GetProcessHeap call

This compiled without issue but was silently failing when this code path was taken. Thanks again for the great PoC.

Ouch, missed that. Thanks for pointing me out.

Thanks again for the great PoC.

I'm just a monkey that replicated Angelboy's work  ;)


Getting error while calculating the capgains

I try to calculate the capgains but getting error.
Sample file:
2017-2-15,ESPP PURCHASE,GOOG,BUY,100,50.00,10.00,USD
2017-5-20,RSU VEST,GOOG,SELL,50,45.00,0.00,CAD
Command:
capgains calc sample_1.csv 2017
Error:
Error: Error with internet connection to URL https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json : HTTPSConnectionPool(host='www.bankofcanada.ca', port=443): Max retries exceeded with url: /valet/observations/FXUSDCAD/json?start_date=2017-02-08&end_date=2017-02-15 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f75d2c8fdd8>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Python version using:
Python 3.6.9

Hello,
I'll again check it out. If it doesn't work then I'll let you know.
Thanks for your help,
Archana
On Thu, 9 Dec, 2021, 9:54 pm Emil Marić, @.***> wrote:

@archana-2 https://github.com/archana-2 Will take a deeper look tonight
and try to reproduce, but can you confirm that your internet connection
is/was good? Based on the stack trace, the program is having an issue
fetching URL
https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json?start_date=2017-02-08&end_date=2017-02-15.
However I tried fetching that same URL through my web browser and didn't
encounter any issues.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EmilMaric/cad-capital-gains/issues/27#issuecomment-990008684,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUG735PBKQH5YUS52DYKOL3UQDJ4LANCNFSM5JS5ZQVA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hey @archana-2
As promised, I tried running this tonight with python 3.6.9 and could not reproduce the error you're seeing. Here is what I saw:
❯ capgains calc test.csv 2017
GOOG-2017
[Total Gains = -1,028.54]
+------------+---------------+----------+-------+------------+----------+-----------+---------------------+
| date       | description   | ticker   | qty   |   proceeds |      ACB |   outlays |   capital gain/loss |
|------------+---------------+----------+-------+------------+----------+-----------+---------------------|
| 2017-05-20 | RSU VEST      | GOOG     | 50    |   2,250.00 | 3,278.54 |      0.00 |           -1,028.54 |
+------------+---------------+----------+-------+------------+----------+-----------+---------------------+

As mentioned in my earlier comment, I believe there may have been a problem with your internet connection or perhaps firewall settings at the time. Can you try pasting the following URL in your browser and see if you get a JSON file to download: https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json?start_date=2017-02-08&end_date=2017-02-15

Hello,
Ya I think because of network issue i get that error. I'll try and close
this issue.
Thank you for your help.
Archana
On Fri, 10 Dec, 2021, 2:08 pm Emil Marić, @.***> wrote:

Hey @archana-2 https://github.com/archana-2
As promised, I tried running this tonight with python 3.6.9 and could not
reproduce the error you're seeing. Here is what I saw:
❯ capgains calc test.csv 2017
GOOG-2017
[Total Gains = -1,028.54]
+------------+---------------+----------+-------+------------+----------+-----------+---------------------+
| date       | description   | ticker   | qty   |   proceeds |      ACB |   outlays |   capital gain/loss |
|------------+---------------+----------+-------+------------+----------+-----------+---------------------|
| 2017-05-20 | RSU VEST      | GOOG     | 50    |   2,250.00 | 3,278.54 |      0.00 |           -1,028.54 |
+------------+---------------+----------+-------+------------+----------+-----------+---------------------+
As mentioned in my earlier comment, I believe there may have been a
problem with your internet connection or perhaps firewall settings at the
time. Can you try pasting the following URL in your browser and see if you
get a JSON file to download:
https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json?start_date=2017-02-08&end_date=2017-02-15
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EmilMaric/cad-capital-gains/issues/27#issuecomment-990737344,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUG735PIGSF5Z4KDXZUOZM3UQG36PANCNFSM5JS5ZQVA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Add a simple FAQ

I agree with sjn's comments, but otherwise this looks good. I wouldn't object to merging as-is and making refinements later, either.


Fix GetLeader bug

Named return values can be returned directly,golang syntax is correct, what problems does this cause?

Yes, I just realized that as well.
There seems to be an issue with the raft in my environment, and I am currently investigating it.
I apologize for the inconvenience.


Newest firmware update overwrites galeforce

I've downloaded the newest gale .5 and flashed it to my Google WiFi, and i can SSH into it, but when i go to set up my network in the app, it updates the firmware and after that, I'm unable to SSH.

Hi,
Any update on this ? Did anyone managed to keep Galeforce and the new GWifi firmware ?
Thanks,
Matt

Not that I’m aware of
Sent from my iPhone

On Jun 3, 2019, at 04:54, Matthieu VALEZY<EMAIL_ADDRESS>wrote:
Hi,
Any update on this ? Did anyone managed to keep Galeforce and the new GWifi firmware ?
Thanks,
Matt
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

...just got the update here...clobbered my network and it may have actually bricked my primary until i can revert the firmware.

@3boysdad I've had exactly the same issue - both of my devices are no longer responding to anything. Lots of flashing and the likes but no WiFi broadcasting happening at all.
Does anyone have any idea how we can revert these devices to stock firmware or fix Galeforce?

Well it seemed that I got working, by reflashing, for about a day.

yep certainly seems to be a persistence issue. I went thru a heck of a learning curve getting this to even install hahaha :D
for anyone who wants to achieve what we all have here - a firmware that will be wiped by google on connection to the internet.... here is my instructions:
make a cable:
get a usb a to usb a extension lead, cut the end off it. get a usb c lead, cut the end of that. wire the usb a lead and the usb c lead together, joining sheild and black together, red and red, green and green, white and white. you will now have a long usb a to usb c lead with a socket in the middle.
plug the usb c end in the google wifi.
plug your onhub formatted usb key with gale.bin image into your usb a socket.
hold down the reset button on the google wifi
plug in the usb a plug to a 1.5-2amp supply
hold down the reset button until the google wifi flashes YELLOW AND ORANGE
hit the developer switch and device reboots
when it flashes purple, hit it again
lights out, leave it for 5 min or so till it finishes installing.
congrats - now you have galeforce, don't plug it into the internet or google will wipe it! :D

...which is fine...i'd actually prefer to roll it back, which i've honestly been unable to do.  also for those that aren't great with wire/solder -> https://smile.amazon.com/dp/B078HZGWYX/ref=cm_sw_em_r_mt_dp_U_UwGlDbS1KAV6B   this would be your best choice for a powered USB-C connector.

I've tried building with newer versions of stuff but theres some problems with ssh, i think there's been some changes to dropbear etc, i think when i next get some time unless someone else wants to do it it might be worth sniffing traffic on a "legit" device to see what google does to interrogate version etc. It might be horrendously poor practice but we might be able to "lie" about the version depending what it checks.... failing that might have to look at preventing connections to the download server...

Best options:
Flash galeforce. Don’t connect to the internet
Ssh. Find the update code in the firmware and delete.
Or
Block connections to the update server after a sniff.
However, blocking that update server may just cause the google Wifi app to stop working or certain functions not available or it may not let you set it up at all, based on some checks in the gwifi fware.
Only way to find out is to try..

Too bad the developer dropped off the face of the earth, I know he spent a lot of time and coding to get GF to stick through updates.

well there is a fork thats got active commits (im built on the fork version) https://github.com/Geczy/galeforce so maby we still have some hope hahah :D

@handwiper - maybe i'm following (it is early right now) but what would be the point exactly of going that route?  i mean it seems you'd have a device, who's stated purpose is to provide internet connectivity and some security protection, that is effectively powered paperweight that blinks pretty purple and yellow/orange colors at you?

the point is if we cant make the device survive update we need to prevent the device updating. theres various ways to do this each of which may or may not work and may have unintended consequences... im not very experienced at this stuff so im the worst person to be doing this but if i have any success ill definitely share my findings. I have yet to get ssh to work at all ( of course im building on modern versions of busybox etc which have clearly changed and im doing something wrong no doubt) ill log an issue on Geczy fork too in case he hasnt noticed - but i suspect he will have lol

Any luck? @exitdown

i've actually been preoccupied with car stuff :) so I havn't had a chance to try yet. will advise when i do if i manage to solve anything though!

i dont have any progress to report but i do have some bad news - i was able to get some information from a reliable source, this firmware overwrite was not done because google 'wanted' to - it was done because the fcc told them to out of concern that people could violate radio spectrum regulations using this firmware. what that means in practice is that it will be cat and mouse for anything that is built against google software - so any alternate firmwares from this point will need to be essentially decoupled from google to prevent overwrites. obviously that means configuration will need to be handled manually too. its a shame but there it is.

while this is a bummer, sadly it left one of my pucks bricked with one their updates.

you should be able to fix that by downloading the official onhub image and flashing it using the same process you used for installing galeforce

yep...tried that few times. works for a few days then inexplicably stops.  even moved it from being my 'primary'.  was rather frustrated with them - while I still have two of them, i'll probably ditch them this next year.  a rather disappointing $300USD purchase I've made in long time.


Create script which will create PRs for the database restoration

Create script which will create PRs for the database restoration

This is meant to be used within Jenkins, I'm not 100% sure it will work for the NFT environment but I will try it out.
However, I have checked that all the steps work locally with my own Git config.
I've also made it so that the output is silent expect for the PR it creates.

This looks sensible. You've copied extensively from https://github.com/Crown-Commercial-Service/digitalmarketplace-scripts/blob/main/scripts/maintenance-mode-pr.sh, so I'm happy this is likely to work.
The difficult part will be getting credentials for a bot user onto the NFT Jenkins in a secure manner. Do we want to use the same bot user as for DMP 1.0? I was wondering if we wanted to create a new bot user?

The NFT Jenkins is already using credentials for somewhere, which is how it logs into GPaaS. However, these are different credentials as the login being used belongs to Leo.

Yes - the NFT Jenkins currently has Leo's credentials for GOV.UK PaaS. Do we want to create a dedicated bot user for Github access for the NFT? That would allow us to avoid exposing credentials for the current bot account which has admin access to all the DMP 1.0 repos.

Yes, we should create a separate bot with separate access. Did you want to do it or shall I?

Feel free - I'm a bit busy today.


chore(avm): wrap oracles with unconstrained fns

See https://github.com/AztecProtocol/aztec-packages/issues/6420.

#6421  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @fcarreiro and the rest of your teammates on  Graphite

Benchmark results
Metrics with a significant change:

circuit_witness_generation_time_in_ms (public-kernel-app-logic): 312 (-19%)
circuit_witness_generation_time_in_ms (public-kernel-teardown): 307 (+16%)

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
740
740
740

l1_rollup_calldata_gas
6,692
6,680
6,692

l1_rollup_execution_gas
586,824
586,812
586,824

l2_block_processing_time_in_ms
1,373
5,148 (+1%)
10,099

l2_block_building_time_in_ms
23,080 (+1%)
90,193
179,671

l2_block_rollup_simulation_time_in_ms
22,936 (+1%)
89,699
178,723

l2_block_public_tx_process_time_in_ms
9,086 (+1%)
35,464 (+1%)
70,569

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
15,578 (+1%)
28,821 (+1%)

node_database_size_in_bytes
22,917,200
39,514,192

pxe_database_size_in_bytes
29,868
59,425

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

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes
circuit_witness_generation_time_in_ms
circuit_proving_time_in_ms
circuit_proof_size_in_bytes

private-kernel-init
109 (+2%)
16,772
33,766
N/A
N/A
N/A

private-kernel-inner
311 (+2%)
57,607
33,766
N/A
N/A
N/A

private-kernel-ordering
697 (+1%)
213,464
48,421
N/A
N/A
N/A

base-parity
7.55 (+1%)
128
64.0
291 (-1%)
13,433
2,208

root-parity
49.1 (+1%)
27,064
64.0
214 (+9%)
186,157 (+3%)
2,720

base-rollup
661
111,094
925
7,650 (+1%)
163,644 (+2%)
3,104

root-rollup
64.7 (+1%)
11,454
789
193 (+4%)
16,693 (+1%)
3,424

public-kernel-app-logic
122 (+1%)
61,017
51,751
:warning: 312 (-19%)
422 (+1%)
65,344

public-kernel-tail
439 (+1%)
166,458
7,691
465 (-2%)
413 (-2%)
10,112

public-kernel-setup
101
61,017
51,751
302 (+4%)
380 (-1%)
65,344

public-kernel-teardown
104
61,017
51,751
:warning: 307 (+16%)
341 (-2%)
65,344

merge-rollup
6.56 (+1%)
2,696
925
115 (+4%)
2,414
3,104

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

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
11.1
18.3
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.647
0.561
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
51.8
81.5
263 (-1%)
507
994
1,955 (-1%)
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.528
0.503
0.478 (-1%)
0.473
0.471
0.467 (-1%)
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
61.8
120
379
747 (+1%)
1,481 (+1%)
2,924 (-1%)
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.539
0.538
0.514
0.514 (+1%)
0.513
0.509 (-1%)
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
67.4

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.590

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
51,016
1,046,607

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
2,246 (+4%)
1,911
5,606 (+8%)

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
658
896 (+1%)
959 (-1%)
1,775 (+1%)
1,156

Merge activity

May 15, 11:57 AM EDT: @fcarreiro merged this pull request with Graphite.


Can't generate compilation DB on M1 Mac

Description:
/tools/vscode/refresh_compdb.sh doesn't succeed on an M1 MBP due to toolchain selection failure. This happens if I run the script directly on the host and inside the devcontainer, although for different reasons. Unfortunately I don't have an Intel Mac to attempt a repro on.

INFO: Repository jq_linux_amd64 instantiated at:
  /workspaces/envoy/WORKSPACE:25:25: in <toplevel>
  /workspaces/envoy/bazel/dependency_imports.bzl:54:27: in envoy_dependency_imports
  /build/envoy-compdb/_bazel_vscode/2d35de14639eaad1ac7060a4dd7e3351/external/aspect_bazel_lib/lib/repositories.bzl:37:25: in register_jq_toolchains
Repository rule jq_platform_repo defined at:
  /build/envoy-compdb/_bazel_vscode/2d35de14639eaad1ac7060a4dd7e3351/external/aspect_bazel_lib/lib/private/jq_toolchain.bzl:183:35: in <toplevel>
ERROR: /build/envoy-compdb/_bazel_vscode/2d35de14639eaad1ac7060a4dd7e3351/external/com_envoyproxy_protoc_gen_validate/BUILD:11:10: While resolving toolchains for target @com_envoyproxy_protoc_gen_validate//:protoc-gen-validate: no matching toolchains found for types @io_bazel_rules_go//go:toolchain
ERROR: Analysis of target '//tools/type_whisperer:types_cc_proto_validate' failed; build aborted:

Toolchain debug output on the local host:
[output truncated for brevity]

INFO: ToolchainResolution:   Type @aspect_bazel_lib//lib:jq_toolchain_type: target platform @local_config_platform//:host: No toolchains found.

ERROR: /Users/jtian/src/envoy/tools/code/BUILD:10:3: While resolving toolchains for target //tools/code:extensions_build_config: no matching toolchains found for types @aspect_bazel_lib//lib:jq_toolchain_type
ERROR: Analysis of target '//tools/code:extensions_build_config' failed; build aborted:

Repro steps:

Open the project in VSCode with the Remote-Container extension activated, and run the "Refresh Compilation Database" task.
Or, set up the local dev env on an m1 Mac and run ./tools/vscode/refresh_compdb.sh
I'm running this on an M1 Max MBP, MacOS 12.4

I found https://github.com/aspect-build/bazel-lib/issues/174 for the local dev issue. Let me see what happens if I use yq instead of jq rules locally.

i think my hesitation - apart from just finding time to test it is that jq is (i believe) faster - which matters for large files
that said - if we can workaround the arm issue just now either by just switching it out, or by using arch selects i think lets do it

Looks like we just need to update bazel-lib to include this commit? https://github.com/aspect-build/bazel-lib/commit/32882befdf20f3011482fb5971c5747f69e732ca

https://github.com/envoyproxy/envoy/pull/22239

@keith Thanks for the fix. After your fix, I am getting the following error
      Compiling with an SDK that doesn't seem to exist: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk
      Please check your Xcode installation
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -mmacosx-version-min=11.0 -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-undef-prefix -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -fPIC -I/var/folders/c8/z52g4gc5679gygt8z0dx0jqm0000gn/T/tmpz82uci07/tools/deps/include -I/var/folders/c8/z52g4gc5679gygt8z0dx0jqm0000gn/T/tmpz82uci07/tools/deps/include/ncursesw -I/var/folders/c8/z52g4gc5679gygt8z0dx0jqm0000gn/T/tmpz82uci07/tools/deps/include/uuid -Werror=unguarded-availability-new -g0 -I/private/tmp/envoy-compdb/_bazel_rama.rao/076790d0a66b7f66620e924600fa5192/external/python3_10_aarch64-apple-darwin/include/python3.10 -Ibuild/temp.macosx-11.0-arm64-cpython-310/include -c build/temp.macosx-11.0-arm64-cpython-310/_sodium.c -o build/temp.macosx-11.0-arm64-cpython-310/build/temp.macosx-11.0-arm64-cpython-310/_sodium.o
      clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk' [-Wmissing-sysroot]
      In file included from build/temp.macosx-11.0-arm64-cpython-310/_sodium.c:57:
      /private/tmp/envoy-compdb/_bazel_rama.rao/076790d0a66b7f66620e924600fa5192/external/python3_10_aarch64-apple-darwin/include/python3.10/Python.h:25:10: fatal error: 'stdio.h' file not found
      #include <stdio.h>
               ^~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pynacl
ERROR: Failed to build one or more wheels
Traceback (most recent call last):
  File "/private/tmp/envoy-compdb/_bazel_rama.rao/076790d0a66b7f66620e924600fa5192/external/python3_10_aarch64-apple-darwin/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/private/tmp/envoy-compdb/_bazel_rama.rao/076790d0a66b7f66620e924600fa5192/external/python3_10_aarch64-apple-darwin/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/private/tmp/envoy-compdb/_bazel_rama.rao/076790d0a66b7f66620e924600fa5192/external/rules_python/python/pip_install/parse_requirements_to_bzl/extract_single_wheel/__main__.py", line 4, in <module>
    main()
  File "/private/tmp/envoy-compdb/_bazel_rama.rao/076790d0a66b7f66620e924600fa5192/external/rules_python/python/pip_install/parse_requirements_to_bzl/extract_single_wheel/__init__.py", line 57, in main

It seems it is trying to use /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk but I have /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk.
Did you run in to this issue as well?

Interesting I do see the same

Ok here's another required fix https://github.com/envoyproxy/envoy/pull/22248
but even with this I find that liburing fails to build for me, as a temporary workaround I found commenting out this line https://github.com/envoyproxy/envoy/blob/1cf5603dc5239c92e5bc38ef321f59ccf6eabc6e/source/common/io/BUILD#L29 breaks the connection in the dependency graph and the file generates

@keith can we add a select on the uring dep so it is not included or perhaps just hack the gen_compilation_database.py::is_compile_target function

We are actually doing a select on the target upstream that pulls in the library I linked above. So it's just a side effect of doing source/... that still pulls in this library. I'm actually surprised this is the only case of this today.
One option is to use this https://github.com/grailbio/bazel-compilation-database/pull/100 and mark the target as compatible only with Linux. I'm not sure what else would fall out of that today though, as we're not currently using target_compatible_with much

And here's an example of what the incompatible solution would look like if we wanted to go that route https://github.com/envoyproxy/envoy/pull/22273, please ptal

trying to understand the implications of disabling it on all platforms - i guess no code highligting etc for that code
iiuc im also wondering if we could generate in a platform-independent way - it seems strange/arbitrary that someone editing on one arch would see the source code differently to another - irrespective of what was ultimate compiled/deployed
that said - i think it would be good to fix this asap (and maybe backport the fix) - so if we need to workaround in some way - probably, lets do it

Yea I'm not sure if it could cascade to something more than just no completion for those 2 files or not. I think that's still the safest one for now https://github.com/envoyproxy/envoy/pull/22272
I think the ideal longer term solution is using https://github.com/envoyproxy/envoy/pull/22273 once the patch in bazel lands, in which case we would just annotate targets as needed and not have to do anything special for compdb specifically

@keith Thank you so much. With this now compilation database generates correctly. But in VS code it still says
errors like cstdint file not found and make_unique is not a member of 'std'  - may be some setup issue. I have all the extensions that .devcontainer.json recommends. Any idea?

Can you check the compile_commands.json file for the file you're working in to see if the -std= arg looks right??

-std=c++17 - This is what it has for all files.

hrms seems right, you can try running one of those commands to see if you get that outside the editor as well

@keith im wondering if this is resolved and im also wondering whether we should backport this to the release/1.23 branch - not sure how likely someone is to be developing on that branch or how necessary this is to do so

I think the core issue is fixed

cool - re backporting - im thinking lets skip it for now and if anyone complains we can backport it

@ramaraochavali please file an new issue if you cant get to the bottom of that one!


Update ExecutionResult reporting.

pretty print execution result on 'shouldSucced' etc. fails
turn on colored test output

Before the shouldSucced predicate used Show on ExecutionResult. This also outputed contract logs, but in an accidental way, using derived Show.
Now shouldSucced (/shouldFail) prints only final contract state and execution outcome on failure (smaller output). Printing logs and budget stats can be made using assertExecutionWith. Before user defaulted to seeing these from Show output, which looks worse than Pretty. Now he might not know that there's this feature so an additional line of log is added. Namely every failing test of type TestContract prints "Use assertExecutionWith to show contract logs or budgets."
Coloring is turned on with cabal flag: green checkmarks on success and red everything on fail.
Before
     FAIL
        But it didn't.
        Result: ExecutionResult {outcome = Left (CaughtException This Exception was thrown intentionally in Contract.

        CallStack (from HasCallStack):
          error, called at test/Spec/TestContract/SimpleContracts.hs:48:20 in main:Spec.TestContract.SimpleContracts), txStats = ContractStats {estimatedBudgets = fromList []}, contractState = (), contractLogs = LogsList {getLogsList = [LogLine {logLineContext = ContractLog, logLineLevel = Info {ltLogTypes = [AnyLog]}, logLineMsg = Some contract log with Info level.},LogLine {logLineContext = ContractLog, logLineLevel = Debug {ltLogTypes = [AnyLog]}, logLineMsg = Another contract log with debug level.}]}}
        Use -p '/Contract 3.Contract should succeed/' to rerun this test only.

After
      Contract should succeed:                                                                           FAIL
        But it didn't.
        Result: Execution result {
            outcome: Left (CaughtException This Exception was thrown intentionally in Contract.

            CallStack (from HasCallStack):
              error, called at test/Spec/TestContract/SimpleContracts.hs:48:20 in main:Spec.TestContract.SimpleContracts)
            final state:  ()
        }

        Use assertExecutionWith to show contract logs or budgets.
        Use -p '/Contract 3.Contract should succeed/' to rerun this test only.

and it's red

Now he might not know that there's this feature so an additional line of log is added. Namely every failing test of type TestContract prints "Use assertExecutionWith to show contract logs or budgets."

👍

LGTM!

ill just add that newline in cabal and - if we already have it - will add aboves to the commit description.


com.badlogic.gdx.reflect.Method is missing annotation methods

I'm missing the following methods in particular:
com.badlogic.gdx.reflect.Method#getDeclaredAnnotations()
com.badlogic.gdx.reflect.Method#getDeclaredAnnotation(Class<? extends Annotation>)
com.badlogic.gdx.reflect.Method#isAnnotationPresent(Class<? extends Annotation>)

I would really appreciate it if someone took the time to implement them. Thanks!

Awesome, thanks :)


Theming help

Would like to ask help for a little bit of speed up. I would like to port this to Semantic UI but there's quite a lot to change. Can you help me give a little bit of lead? What changes to be made?

can you try something like this:
$.notify({
	icon: 'inbox',
	title: 'You must register before you can do that!',
	message: 'Visit our registration page, then try again'
},{
	type: 'warning',
	delay: 5000,
	template: '
' +
		'' +
		'' +
		'
{1}
' +
		'{2}' +
	'
'
});

This is a complete guess if this will work since I have never used Semantic UI and just did a bunch of reading up on it this past week. But it to my best understanding this should be a jumping off point. Let me know how this works.

@xxRockOnxx if you could take screen shots of any error messages or outputs of that code in Semantic UI it will be a nice point to help me fix any mistakes, right now I think their might be an issue with the gird which we could resolve with some css.

I was actually hoping/expecting something more related to the source. I understand that this is a bootstrap-exclusive plugin and that theming was not your intention at the time of making (I guess) but I think that'll make the plugin more flexible. Something like, theme variables or stuffs like that.
Btw, I currently use noty which is a bit more flexible temporarily.

https://github.com/needim/noty/

Though the name of the plugin references "Bootstrap" I don't think the plugin itself has any requirements to "Bootstrap" it was built to be used an any project, that was kinda the point of the templating part.

what are the  js and css  links i should use for that boostarb nodify


VM tests should not depend on any specific VM technology

I was trying to run some of the tests, which run some virtual machines with a virtual network automatically, but since the virtualbox module is already loaded, those don't work.
The way this should work is that the system should detect which virtualization technologies are supported on the host system (which might be NixOS) and then it should use whatever candidate works best.
I am thinking of Xen, Virtualbox, and KVM.

:+1: :+1: :+1:
My approach wouldn't be to auto-detect based on host, since as others have mentioned it could introduce nondeterminism. However, even the ability to explicitly state that I'd like to run the suite using one particular backend would be a big plus, or even doing so on a per-test basis.
Ultimately, I'd probably just want to run many of my tests in NixOS containers, since I'm using a lot of AWS and I can't run full-fledged virtualization software efficiently inside an EC2 instance.

A lot of these like the installer tests inherently depend on being inside a
VM or some kind of mutable container and would be specific to the tech.
Networking tests rely on being able to add kernel devices for testing
network configuration. Otherwise, this could probably work for most other
test cases.
On Apr 19, 2015 11:21 AM, "Daniel Peebles"<EMAIL_ADDRESS>wrote:

[image: :+1:] [image: :+1:] [image: :+1:]
My approach wouldn't be to auto-detect based on host, since as others have
mentioned it could introduce nondeterminism. However, even the ability to
explicitly state that I'd like to run the suite using one particular
backend would be a big plus, or even doing so on a per-test basis.
Ultimately, I'd probably just want to run many of my tests in NixOS
containers, since I'm using a lot of AWS and I can't run full-fledged
virtualization software efficiently inside an EC2 instance.
—
Reply to this email directly or view it on GitHub
https://github.com/NixOS/nixpkgs/issues/5241#issuecomment-94303226.

Yeah, I was just thinking a related (though independent) feature would be
to have isContainer = true configs throw errors if you try to do silly
things in them like change kernels or bootloaders.
On Sunday, April 19, 2015, William A. Kennington III <
<EMAIL_ADDRESS>wrote:

A lot of these like the installer tests inherently depend on being inside a
VM or some kind of mutable container and would be specific to the tech.
Networking tests rely on being able to add kernel devices for testing
network configuration. Otherwise, this could probably work for most other
test cases.
On Apr 19, 2015 11:21 AM, "Daniel Peebles"<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

[image: :+1:] [image: :+1:] [image: :+1:]
My approach wouldn't be to auto-detect based on host, since as others
have
mentioned it could introduce nondeterminism. However, even the ability to
explicitly state that I'd like to run the suite using one particular
backend would be a big plus, or even doing so on a per-test basis.
Ultimately, I'd probably just want to run many of my tests in NixOS
containers, since I'm using a lot of AWS and I can't run full-fledged
virtualization software efficiently inside an EC2 instance.
—
Reply to this email directly or view it on GitHub
https://github.com/NixOS/nixpkgs/issues/5241#issuecomment-94303226.

—
Reply to this email directly or view it on GitHub
https://github.com/NixOS/nixpkgs/issues/5241#issuecomment-94307896.

Now that https://github.com/NixOS/hydra/issues/201 is starting to work, having this is even more appealing!

If it's useful to anyone else, here's the patch to be able to ssh into NixOS tests and debug the state:
diff --git a/nixos/lib/test-driver/test-driver.pl b/nixos/lib/test-driver/test-driver.pl
index 8ad0d67..838fbdd 100644
--- a/nixos/lib/test-driver/test-driver.pl
+++ b/nixos/lib/test-driver/test-driver.pl
@@ -34,7 +34,7 @@ foreach my $vlan (split / /, $ENV{VLANS} || "") {
     if ($pid == 0) {
         dup2(fileno($pty->slave), 0);
         dup2(fileno($stdoutW), 1);
-        exec "vde_switch -s $socket" or _exit(1);
+        exec "vde_switch -tap tap0 -s $socket" or _exit(1);
     }
     close $stdoutW;
     print $pty "version\n";

Even not considering lxc/xen/containers and tests in the cloud, switching to libvirt could simplify test-driver. libvirt-qemu already has good half of functionality of test-driver:

it maintains monitor socket (for sendkey) and backdoor shell over serial port
it has own bridge and can authomatically connect VMs to openvswitch if more advanced networking required, so VDE might be deprecated.
it has Perl API richer than test-driver Machine.pm's sendkey/takescrrenshot

I've added vm test debugging machinery in  https://github.com/NixOS/nixpkgs/pull/47418

@edolstra Would libvirt be an option? Any other way to fix this issue?
Or should we just close this issue?

This is probably the major missing bit for NixOS tests to become extremely useful.
The current requirement of qemu needing hardware virtualization makes it really hard to use them on a CI.
If we had some kind of container backend, that would mean better integration with CIs.

I also had some problems with KVM support. (Either because I wanted to run the tests on a VM and I don't have nested virtualization, or because I wanted to run the tests on CI.) After some research, I was wondering if there is anyone having experience with UML. To me (with my basic knowledge about this topic), it looks like UML could allow us to run the tests efficiently without using hardware virtualization in the first place.

Successful developments in this area have been

HVF support through qemu (similar to KVM but a macOS host), progress: https://github.com/NixOS/nixpkgs/issues/108984; no significant changes to test framework
https://github.com/NixOS/nixpkgs/pull/126713
Test glue now uses modules; will help keep glue mess in check https://github.com/NixOS/nixpkgs/pull/191540

TBD

https://github.com/NixOS/nix/pull/3600 (essential for container backend)
#139788 (stalled; was not coordinated in advance, while 126713 was in progress)


Align documents on block boundaries

Aligning documents on 16-byte boundaries should in theory improve reading performance slightly.
For this, the size prefix needs to be enlarged to 16 bytes and the document padded to a multiple of 16 bytes (including final line break). This means a file format change. see also #33

Apparently, the performance gain is much larger than anticipated, especially together with binary document header:
Write batches of 1.000 documents into a single partition (Samsung 970 EVO Plus 1TB, i7-8565U), document
{"type":"FooBarHappened","payload":{"foo":"foo","bar":"bar","baz":"baz","quux":"quux"},"metadata":{"version":0,"occuredAt":1570306810809}}

[stringified 10 byte header = version <= 0.7]
partition x 10,850 ops/sec ±155.06% (9 runs sampled)

[binary 16 byte header]
partition x 23,525 ops/sec ±39.98% (10 runs sampled)

[binary 16 byte header + 16 byte document alignment]
partition x 34,230 ops/sec ±10.16% (8 runs sampled)

Need to verify again and check read performance too, but that is surprising.

Okay, so after somewhat adjusting and fixing the benchmark, the difference on write is next to non-existent any more, which makes more sense. Still, the read performance nearly doubles with binary header and alignment. Alignment on 16 bytes has no further improvement over 4 byte alignment, so that's the way to go. 4-byte alignment means all 32bit ints in the headers can be read from aligned memory addresses in the buffer.
With 4K read/write buffers:
[stringified 10 byte header = version <= 0.7]
Wrote 5231000 documents of size 138 bytes.
Partition size: 743.3 MB
write x 1,069 ops/sec ±2.33% (78 runs sampled)
read  x 1,326 ops/sec ±1.58% (82 runs sampled)

[binary 16 byte header + 4 byte document alignment]
Wrote 5810000 documents of size 138 bytes.
Partition size: 864.4 MB
write x 1,169 ops/sec ±2.99% (76 runs sampled)
read  x 2,150 ops/sec ±1.91% (79 runs sampled)

With 16k write/64k read buffers:
[stringified 10 byte header = version <= 0.7]
Wrote 6795000 documents of size 138 bytes.
Partition size: 965.6 MB
write x 1,409 ops/sec ±9.63% (74 runs sampled)
read  x 1,674 ops/sec ±1.54% (81 runs sampled)

[binary 16 byte header + 4 byte document alignment]
Wrote 6597000 documents of size 138 bytes.
Partition size: 981.5 MB
write x 1,592 ops/sec ±1.44% (70 runs sampled)
read  x 3,604 ops/sec ±1.87% (82 runs sampled)

Hence I will also increase the default read buffer size to 64k from the very small 4k till now. Write buffer increasing goes hand in hand with potential data loss, so this will stay with the already optimistic 16k.
So roughly 1.5M writes/s and 3.5M reads/s on small documents.
For document sizes of ~1k this falls rapidly:
Wrote 1806000 documents of size 1127 bytes.
Partition size: 1970.4 MB
write x   547 ops/sec ±2.81% (46 runs sampled)
read  x 1,475 ops/sec ±1.75% (79 runs sampled)

Still, ~8x document size only leads to ~3x slower write and ~2.5 slower read. Notice, slow here means docs/s, but actually bytes/s go up with that.
There's room for improvement still, since that's only <600MB/s write, while my SSD can do up to 2500MB/s sequential write.


Permissions depend on datetime

@ghost offers:
A user has permission between startdatetime and enddatetime.

:+1:  would be great!

+1

+1

+1


option to resize input field

Will it be possible to have an option to resize the input field? thanks!

Hi!
It is possible, however I'm not sure when I'll find a time to do it.
I'm also planning to replace the JBTextArea with a browser based component which imo gives more flexibility to customize the field and its functionality.

If it's too much trouble to make it resizable, in the meantime could we just have textarea row count set to something more reasonable (e.g. 6 rows instead of the current 2).

@AustinColby I will try to prioritize this feature. Most likely, a row count of 6 is going to look ugly on smaller screens.

Closing this issue.
The height of the text area will grow according to the content (v2.0.0).


Mypy errors not reported in all relevant files in PR

@ajahl and I are trying to get mypy errors reported to PRs using tsuyoshicho/action-mypy in a GitHub workflow, but not all such errors are being reported. In particular, we have introduced mypy errors in three files for testing purposes, but only the errors in one of the files are being reported.
We are running the workflow on a branch on my fork. When I run mypy on the branch locally, I get the following output:
~/magma$ mypy lte/gateway/python/
lte/gateway/python/magma/enodebd/state_machines/enb_acs_manager.py:43: error: Need type annotation for "_state_machine_by_ip" (hint: "_state_machine_by_ip: Dict[<type>, <type>] = ...")  [var-annotated]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_manager.py:114: error: "None" has no attribute "mconfig"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_manager.py:169: error: Return value expected  [return-value]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_manager.py:216: error: Need type annotation for "ip_by_enb_serial" (hint: "ip_by_enb_serial: Dict[<type>, <type>] = ...")  [var-annotated]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_manager.py:217: error: Need type annotation for "enb_serial_by_ip" (hint: "enb_serial_by_ip: Dict[<type>, <type>] = ...")  [var-annotated]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:116: error: "None" has no attribute "exit"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:118: error: "None" has no attribute "enter"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:122: error: "None" has no attribute "exit"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:191: error: "None" has no attribute "enter"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:205: error: "None" has no attribute "read_msg"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:208: error: "None" has no attribute "read_msg"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:214: error: "None" has no attribute "get_msg"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:230: error: "None" has no attribute "state_description"  [attr-defined]
lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:236: error: "None" has no attribute "state_description"  [attr-defined]
lte/gateway/python/magma/pipelined/tests/pipelined_test_util.py:71: error: NamedTuple field name cannot start with an underscore: __test__  [misc]
lte/gateway/python/magma/pipelined/tests/pipelined_test_util.py:71: error: Invalid statement in NamedTuple definition; expected "field_name: field_type [= default]"  [misc]
lte/gateway/python/magma/pipelined/tests/pipelined_test_util.py:706: error: Missing return statement  [return]
Found 17 errors in 3 files (checked 658 source files)

but only the errors in enb_acs_manager.py are being reported in the PR, e.g. here.
In trying to debug this, we have set filter_mode: nofilter and added extra output to the action, again on my fork, as you can see here. Looking at this in the CI, we find that the errors not being reported by reviewdog are found by mypy. (Note that we have fail_on_error set to false so the job is green despite showing errors) For example,
  Raw Output:
  /home/runner/work/magma/magma/lte/gateway/python/magma/enodebd/state_machines/enb_acs_impl.py:116:9: error: "None" has no attribute "exit"  [attr-defined]
  Error: [mypy] reported by reviewdog 🐶
  "None" has no attribute "enter"  [attr-defined]

so we wonder whether something is going wrong when the results are filtered by reviewdog in the action here.
We're not sure whether (i) we have some unwanted configuration, (ii) something is wrong with the use of reviewdog in the action itself, or (iii) there is a bug in reviewdog. Any help would be really appreciated, thanks!

I'm pretty sure github actions has a limit of 10 error annotations and 10 warning annotations per check when using commands. Ref: https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md#limitations
If you want more:

make sure you have reporter as "github-check" or "github-pr-check"
make sure your github token is properly passed to reviewdog and that it has permissions to write to the checks api


Conversion code for triton_gpu.async_wait

When the target is NVIDIA, the triton_gpu.async_wait operation is lowered to the following inline asm:
%2 = "llvm.inline_asm"() {asm_dialect = 0 : i64, asm_string = "cp.async.wait_group 0x4;", constraints = "", has_side_effects, operand_attrs = []} : () -> !llvm.void

We need to support for the equivalent operation of cp.async.wait_group
The cp.async.wait_group instruction waits for completion of prior asynchronous copy operations. The syntax is:
cp.async.wait_group N;

The instruction will cause the executing thread to wait till only N or fewer of the most recent cp.async-groups are pending and all the prior cp.async-groups committed by the executing threads are complete. For example, when N is 0, the executing thread waits on all the prior cp.async-groups to complete. Operand N is an integer constant.

@etiotto can we close this ticket?

yes


Add tests for I2C timing, adjust SDADEL/SCLDEL

Tests from RM0433 and I2C specification (UM10204)
Adjust SDADEL/SCLDEL values slightly so they pass the tests in all cases. Changes:
Sm SCLDEL i2cclk / 800_000 / presc - 1 -> i2cclk / 500_000 / presc - 1
Fm SDADEL i2cclk / 8_000_000 / presc -> i2cclk / 4_000_000 / presc
Fm+ SDADEL 2 -> i2cclk / 8_000_000 / presc

🎉
bors r+


Bug 1964888: make imagestreamimports as a long running request

/bugzilla refresh

imagestreamimports is already a long running request
/close


Resolution

System information:

Operating system (distribution) and version
DBeaver version
Additional extensions

Connection specification:

Database name and version
Driver name
Do you use tunnels or proxies (SSH, SOCKS, etc)?

Describe the problem you're observing:
Steps to reproduce, if exist:
Include any warning/errors/backtraces from the logs

Hello, please add info in your issue template.

According to the profile, they look like a stats hunter.


Static site generator with commons chunk plugin manifest generating error

Im using this plugin with the CommonsChunkPlugin creating a manifest and im getting this error:
ERROR in ReferenceError: webpackJsonp is not defined
    at main:1:270
    at main:1:84
    at main:1:223
    at ContextifyScript.Script.runInContext (vm.js:59:29)
    at ContextifyScript.Script.runInNewContext (vm.js:65:15)
    at module.exports (/Users/kdurbin/projects/react-toolbox/node_modules/eval/eval.js:69:12)
    at Compilation.<anonymous> (/Users/kdurbin/projects/react-toolbox/node_modules/static-site-generator-webpack-plugin/index.js:42:22)
    at Compilation.applyPluginsAsyncSeries (/Users/kdurbin/projects/react-toolbox/node_modules/tapable/lib/Tapable.js:206:13)
    at self.applyPluginsAsync.err (/Users/kdurbin/projects/react-toolbox/node_modules/webpack/lib/Compilation.js:671:11)

I think its because static site generator is only loading my "main" chunk but not the manifest (all the "meat" or webpack) and it needs to eval the manifest with the main chunk. How do I fix this?
Heres the relevant chunk of my webpack config:
    plugins: [
      new webpack.optimize.CommonsChunkPlugin({
        name: 'manifest',
      }),
      new StaticSiteGeneratorPlugin({
        crawl: true,
      }),
      new CompressionPlugin(),
      new webpack.HashedModuleIdsPlugin(),
      new UglifyJSPlugin(),
      new webpack.DefinePlugin({
        'process.env.NODE_ENV': JSON.stringify('production'),
      }),
    ],

Closing. Solved by issue #84


Amazon Linux 2

Any plans to update the ko repo to support Amazon Linux 2 and a few other more updated AMIs?  If no, looking for suggestions on workarounds (other than manually inputting a manually generated ko file).

You may notice I've not given this project some love in a while.  We had some major issues with kernel 4.x and higher due to ASLR.  I'll flag this for follow up to see if the state of the analysis tools / LiME have moved forward.  Without advancement in underlying tooling it might be impossible.

@andrewkrug It appears that I've encountered a similar issue with AL2 and a newer version of the kernel (5.4)
margaritashotgun --server ip-x-x-x-x.us-east-2.compute.internal --username ec2-user --key cfn.pem --filename <IP_ADDRESS>-mem.lime --repository --gpg-no-verify
2021-10-15T22:05:30 - margaritashotgun - ERROR - The kernel module for 5.4.149-73.259.amzn2.x86_64 does not exist, searched https://threatresponse-lime-modules.s3.amazonaws.com for availible modules

Is there a similar OSS tool we can use in the meantime?


Textual Inversion doesn't work on colab

Trying to get textual inversion to work using colab pro: Stable diffusion has no idea what the german foreign secretary looks like. ;)
Started the notebook from the repository (which works great with dream.py)
python3 ./main.py --base ./configs/stable-diffusion/v1-finetune.yaml \
>                   --actual_resume ./models/ldm/stable-diffusion-v1/model.ckpt \
>                   -t \
>                   -n AnnalenaBaerbock \
>                   --gpus 0 \
>                   --data_root /content/drive/MyDrive/sd/train/Bundesregierung/AnnalenaBaerbock/images  \
>                   --init_word 'woman'

This is the error I get:
Unexpected Keys: ['model_ema.decay', 'model_ema.num_updates']
Traceback (most recent call last):
  File "./main.py", line 759, in <module>
    trainer_kwargs['logger'] = instantiate_from_config(logger_cfg)
  File "/content/stable-diffusion/ldm/util.py", line 89, in instantiate_from_config
    return get_obj_from_str(config['target'])(
  File "/content/stable-diffusion/ldm/util.py", line 99, in get_obj_from_str
    return getattr(importlib.import_module(module, package=None), cls)
AttributeError: module 'pytorch_lightning.loggers' has no attribute 'TestTubeLogger'

It would be great to be able to use it on colab, training on my MacBook would take ages if it worked.

seems like textual inversion is broke on local too when trying to use a .pt file.

My guess is that this is a versioning problem, probably involved pytorch-lighting. What happens if you do a pip install --upgrade pytorch-lightning?
I'm tagging a few people who worked on the textual inversion implementation to see if they can offer any assistance: @Oceanswave @nicolai256 @chromaticist @david-ford

This is the version that is installed:
Name: pytorch-lightning
Version: 1.7.6
Summary: PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate.
Home-page: https://github.com/Lightning-AI/lightning
Author: Lightning AI et al.
Author-email<EMAIL_ADDRESS>License: Apache-2.0
Location: /usr/local/lib/python3.7/dist-packages
Requires: fsspec, numpy, packaging, pyDeprecate, PyYAML, tensorboard, torch, torchmetrics, tqdm, typing-extensions
Required-by: taming-transformers-rom1504

For the time being I'm using the Notebook from Hugginface. Importing the .bin files from there works!


All 10 additional sets of consent forms are visible from the beginning

Path: /proposals/consent/

The text at the top says that additional sets of forms can be added using a button, but instead all 10 sets of upload fields are visible from the beginning.

This page will dissappear entirely with the new attachments system, that is why it looks so awful ;p. I'll close this issue.


[SPARK-28795][FOLLOW-UP] Links should point to html instead of md files

What changes were proposed in this pull request?
Use html files for the links
Why are the changes needed?
links not working
Does this PR introduce any user-facing change?
Yes
How was this patch tested?
Used jekyll build and serve to verify.

Merged build finished. Test PASSed.

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

Test build #113672 has started for PR 26494 at commit af0bea0.

Test build #113672 has finished for PR 26494 at commit af0bea0.

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

Merged build finished. Test PASSed.

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

Merged to master

Thanks Sean!


Support expressions in constraints

It seems there is currently no way to create a constraint on an expression instead of a column name.
await db.schema
    .createTable("foo")
    .addColumn("name", "text")
    .addUniqueConstraint("name_unique", ["lower(name)"])
    .execute()

I couldn't make this work by passing a callback as third argument to addUniqueConstraint (UniqueConstraintNodeBuilderCallback).

An expression builder callback doesn't make much sense here since there's not type-safety, but we should make this work:
addUniqueConstraint("name_unique", [sql`lower(name)`])

I'm surprised that this isn't implemented. Do people really not use unique constraints like this?

@devlzcode Do something about it. 🤷♂

@igalklebanov i've got free time, tell me where to start

Start by following the instructions at https://github.com/kysely-org/kysely/blob/master/CONTRIBUTING.md.
Add a playground.ts file in the root folder, and play around with the existing API you want to enhance with your changes later. Follow the method's call stack to understand what needs changing at which layer/s.
If you need hints or have questions, swing by the Discord server and ask in the contributing channel.


Using this with Facebook web flow login

Hi there - thanks a bunch for this plugin. I have an issue with respect to my redirect URI and not getting passed back to my Flutter app. I'm guessing I've done something silly and wanted to ask for your guidance.
I'm trying to use this plugin to provide Facebook authentication with Firebase - and I was expecting the plugin to initiate the full login flow, return a token that I can use with FirebaseAuth and then validate against firebase.
I use the following simple code to start the Facebook login flow :
try {
     FacebookOAuth2Client client = FacebookOAuth2Client(
         redirectUri: 'https://myapp.firebaseapp.com/__/auth/handler',
         customUriScheme: "https");

     OAuth2Helper oauth2Helper = OAuth2Helper(client,
         grantType: OAuth2Helper.AUTHORIZATION_CODE,
         clientId: 'my facebook app id',
         scopes: ['email']);

     var t = await oauth2Helper.fetchToken();
   } catch (e) {
     print(e.toString());
   }

This appears to work and asks firstly for permission :

and then when I grant will show me the Facebook page - since I have already logged in , this page is shown on my device (Simulator) :

The issue I have now is that when I tap continue control does not return back to my app so that I can process the token .
I just get this screen on my device/simulator being shown :

And unless I cancel, control does not go back to my app.
Is there something basic I'm missing here with regards to using your plugin properly with the firebase callback and customUriScheme  or have I misunderstood the correct usage of FacebookOAuthClient, OAuthHelper and fetchToken ?

Hi @sallypeters, I guess it would be more simple to use the Firebase SDK instead of implementing your own custom client. Actually I couldn't find any documentation referring to any Firebase OAuth endpoints (should you find something, I would gladly give it a look).
Furthermore I suspect you are implementing an authentication flow (instead of an authorization one), thus you will need proper JWT and OpenID Connect handling, which are not currently provided by the library.

Hi @sallypeters, probably at this time you already solved your issue (maybe using another package...), but just in case you are still stuck with it, I think I found out what the problem could be:  you shouldn't use http(s) scheme for the redirect uri, but a custom one, for example my.test.app://oauthredirect.
Sorry for the late reply!


Automate components updates

Create GitHub actions workflow that opens PRs every time a controller is released. The PR should bump the version in manifests/bases and go.mod.
Workflow:

fetch latest release from GitHub API
run go mod edit -require=github.com/fluxcd/source-controller@<VERSION>
run go mod tidy
check for changes with git diff
replace the version in bases/source-controller/kustomization.yaml
commit changes
open PR with peter-evans/create-pull-request@v2

This has been implemented in #177 (and some sequential PRs to improve the base that was added there).


a_strex.c: prevent out of bound read in do_buf()  (1.1.0)

which is used for ASN1_STRING_print_ex*() and X509_NAME_print_ex*().
Backported from #6105

Travis build failure seems to affect other travis users too:
https://stackoverflow.com/questions/50024731/ld-unrecognized-option-push-state-no-as-needed
https://travis-ci.org/Toeger/SCE/builds/371071764


Add Google.Protobuf version 29.1

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.9 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree

I have tried the installation several times and it has always been successful
I have tried the installation command again without modifying anything and it has performed a correct installation.


Add link to Slack support

Need to add a link to be able to join the Support Slack after @pushkar adds.

@pushkar, what is the slack support link?


_normalize is wrong when a page is attached to default route

This is a (multiple allowed):

[x] bug

[ ] enhancement

[x] question

CakePHP Version: 3.5.14

Plugin Version/Branch: COMPOSER REQUIREMENTS (e.g. dev-master, dev-4.0.1-alpha, 3.1.*).

What you did
I have a route attached to a page called 'dashboard'
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'dashboard']);
So, using the Navbar help I've created a link like this:
$this->Navbar->link('Dashboard', ['controller' => 'Pages', 'action' => 'display', 'dashboard'])

And the generated link is '/' since its routed that way.
In another page, '/home',  (pages/display/home)
the link '/' is marked as 'active' and this is wrong.
How can I check the current page properly?
What happened
I got the root page active even on another page.
Normalize functions seems not work properly when the URL is attached to '/' route.
What you expected to happen
Normalize should check the URL in routes and consider it.

So, I'm running more tests here and there are more details I can add here:
I have this route
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'dashboard']);

so my mysite.dev/ is conected to my dashboard page
And I have added this link in my Navbar
$this->Navbar->link('Dashboard', ['controller' => 'Pages', 'action' => 'display', 'dashboard'])

When opening another page, ie: mysite.dev/about
the compareUrls() will compare '/' (my dashboard page) with the current page '/about'
Then, the normalize() will come up with the wrong structure for the '/' url.
'pass' => [
	**(int) 0 => 'about'**
],
'controller' => 'Pages',
'action' => 'display',
'plugin' => null,
'_matchedRoute' => '/pages/*'

I think the line
$url = Router::parseRequest(new ServerRequest($this->_removeRelative($url)));

is not parsing the root route right.
If I remove the route in my routes.php this thing doesn't happen and the normalized version for it is:
'pass' => [
	**(int) 0 => 'dashboard'**
],
'controller' => 'Pages',
'action' => 'display',
'plugin' => null,
'_matchedRoute' => '/pages/*'

Check the pass parameter changing.


Subdivision holes

If we render the lips 2 with subdivision depth > 0, we see some tiny holes that are not there on subdivision depth = 0. I believe the issue is the triangulation is not topologically consistent on cubes obtained by subdivision, due to subdivision not preserving the direction of cubes.

Maybe #353 will fix this, but there are problems with that as well.

Fixed by 85b73fb


Overruling is_private not possible anymore

[x] I've read the Troubleshooting First Steps
[x] This request isn't a duplicate of an existing issue, opened or closed
[x] I've read the docs and followed them (if applicable)
[x] This is not a personal support request that should be posted on the YOURLS Discourse community

Describe the bug
Overruling yourls_is_private() is not possible anymore
To Reproduce
Steps to reproduce the behavior:

Set define( 'YOURLS_PRIVATE', true ) and define( 'YOURLS_PRIVATE_INFOS', false )
Open info page of a short url
See that it's still private

Expected behavior
YOURLS_PRIVATE_INFOS and YOURLS_PRIVATE_API should have any effect.
Actual behavior
They don't have any effect.
Versions
1.8
Additional context
The problem is in here:
https://github.com/YOURLS/YOURLS/blob/510851c91866063f3e3bc1ac40c8c4c2caf16293/includes/functions.php#L496-L517
$private will always be true.
I will provide a pull request.

Hooo, indeed, nice catch, was wondering why I couldn't see http://yourls.org/gandi+ the other day :)


generate API documentation programmatically

continuation of #101 - this one is complete; though i probably need to tweak it a bit to compensate for today's changes(DONE) - more importantly though; i would not be able to check the outputs; because i dont know where github puts it's build artifacts
the top commit marked 'DELETEME' is not intended to be merged - it is only questions, in-line the relevant points for discussion and clarification - some of these i could answer myself by reading the source code - given the new API functions implemented since i started this, there could be many more - i simply gave those "TODO" as descriptions

Also #234 ; some of the pages seem mixed up ?


Property assignments should get the same completions as variables

Summary of the new feature / enhancement
Variables that are declared with an enum type gets tab completion for the possible values as seen here: TabExpansion2 '[System.Management.Automation.ProgressView]$Test =' | select -ExpandProperty CompletionMatches
This feature is missing for property assignments: TabExpansion2 '$PSStyle.Progress.View=' | select -ExpandProperty CompletionMatches.
Proposed technical implementation details (optional)
No response

Thank you @MartinGC94 for reporting this.  The Working Group agrees that this is great functionality to include - and specifically for $PSStyle.


Update puppeteer.page.waitforselector.md

What kind of change does this PR introduce?
Typo fix
Did you add tests for your changes?
Yes
Summary
Fix small typo.

Thanks! Will be fixed in https://github.com/puppeteer/puppeteer/pull/8701


How I can use gtag's consent config options? (GDPR compliance)

Hello,
first thanks you for this component!
I am trying to comply the GDPR but with the default option is not possible.
I need to be able to set consent in gtag:
https://developers.google.com/tag-platform/devguides/consent
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

I need to be able to deny the creation of cookies by default in gtag so that only when the user accepts the use of cookies can they be created.
In short, the following happens to me:
https://stackoverflow.com/questions/60173853/how-to-set-the-google-analytics-cookie-only-after-another-consent-cookie-is-set
Thanks!

unfortunately I didn't end up using this component.
I solve this issue in this way.
I started by denying access to store cookies.
              <Script
                id="gtag-init"
                strategy="afterInteractive"
                dangerouslySetInnerHTML={{
                  __html: `
                    window.dataLayer = window.dataLayer || [];
                    function gtag(){dataLayer.push(arguments);}
                    gtag('js', new Date());

                    gtag('consent', 'default', {
                      'ad_storage': 'denied',
                      'analytics_storage': 'denied'
                    });

                    gtag('config', '${process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS}', {
                      page_path: window.location.pathname,
                    });
                  `,
                }}
              />

And then in my function that accepts the use of cookies, I update the permission.
https://github.com/Mastermindzh/react-cookie-consent#installation
              <CookieConsent
                onAccept={handleAcceptCookie}
                enableDeclineButton
                style={{ background: "#0F172A" }}
              >
                This website uses cookies to enhance the user experience.
              </CookieConsent>

  const handleAcceptCookie = () => {

    window.gtag('consent', 'update', {
      'ad_storage': 'granted',
      'analytics_storage': 'granted'
    });

  };

It worked without a problem.
I would love to continue using this library, I will try to find free time to generate a PR.
Thanks!

https://github.com/MauricioRobayo/nextjs-google-analytics/pull/367

Thanks you! @MauricioRobayo


Github Action to make a release for the Raspberry Pi (aarch64 and armv7l)

Description
This pull request introduces enhancements to the existing GitHub Actions workflow to support cross-compilation and release of binaries for Raspberry Pi architectures (aarch64 and armv7). The modifications ensure that binaries for different platforms are generated, uploaded, and made available for release whenever a new version tag is pushed. Below are the key changes made:
Type of change

Installing cross-compilation tools (gcc-arm-linux-gnueabihf and gcc-aarch64-linux-gnu) to enable building for ARM-based Raspberry Pi devices.

This enhancement improves the portability of the mup tool, making it easily deployable on Raspberry Pi devices.

How Has This Been Tested?

To verify the changes, I have tested the GitHub Actions workflow and the binaries using the following steps:

Testing on EC2 server:

Connect to the EC2 service:

Used the Instance connect feature to directly connect to Ubuntu server ( No SSH and SCP)

Instance type: t2.micro

Used gh cli to authenticate with my github account

Used the following command to downlaod the asset from my repo:

   gh release download latest --repo <user_or_org>/<repo_name> --pattern <asset_name>

To make the downloaded assets executable:

   sudo chmod -R 755 /home/ubuntu

Testing using QEMU:

To test both aarch64 and armv7 binaries, the EC2 instance needs the proper emulation environment using QEMU.
Run the following commands to update and install the required dependencies:

  sudo apt-get update
  sudo apt-get upgrade -y
  sudo apt-get install -y qemu-user-static binfmt-support gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf

Install QEMU for ARM architecture support:

  sudo apt-get install -y qemu qemu-user qemu-user-static

Configure binfmt to register the ARM architectures:

  sudo update-binfmts --enable qemu-aarch64
  sudo update-binfmts --enable qemu-arm

update-binfmts: This utility is used to manage binary format handlers on Linux systems. It allows the system to automatically recognize and run binaries for different architectures using tools like QEMU.

--enable: This flag specifically enables the handler (in this case, for QEMU) to interpret and run binaries for the specified architecture (either qemu-aarch64 or qemu-arm).

Setup the ARM run-time environment:

Ensure that the necessary ARM libraries are installed on your system. You can do this by installing the libc6-arm64-cross package:(aarch64)

  sudo apt-get update
  sudo apt-get install libc6-arm64-cross

Run the binary with QEMU, assuming your sysroot is /usr/aarch64-linux-gnu (In most cases this is where it would be) by specifying the library path directly:

 qemu-aarch64 -L /usr/aarch64-linux-gnu ./mup-linux-aarch64

Result: (aarch64)

The binary architecture is 64-bit and is dynamically linked:

Install the required libraries for armv7 by installing the libc6-armhf-cross package:

  sudo apt-get update
  sudo apt-get install libc6-armhf-cross

You can specify you library path directly when running your binary with QEMU:

  qemu-arm -L /usr/arm-linux-gnueabihf ./mup-linux-armv7

Result: (armv7)

The binary architecture is 32-bit and is dynamically linked:

Test Configuration:

Hardware:  EC2 Ubuntu instance
Toolchain: Go with CGO enabled, gcc-arm-linux-gnueabihf, gcc-aarch64-linux-gnu

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code

Hi, sorry for being so late. I have now read your new GitHub workflow and it looks all right, merging.


hex to base64

Please update the documentation stating that transaction must be base64 encoded and not in hex.

fixed


Set global response headers from Api module

Users should be able to provide a set of global response headers from the Api module. The module should implement a behaviour that returns response headers that are merged with any headers coming from the return value of a function.

The current solution of automatically adding {"Content-Type": "application/json"} to all responses should be moved to the default implementation of this behaviour.


fix: Export MQTT message bus env variables for Keeper

refer to https://github.com/edgexfoundry/edgex-go/issues/4832

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-compose/blob/main/.github/Contributing.md
PR Checklist
Please check if your PR fulfills the following requirements:

[x] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[x] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
[ ] I have opened a PR for the related docs change (if not, why?)

Testing Instructions

@jackchenjc please rebase this PR. Thanks.


Run all tests in package

Is it possible to run all tests within a package with this plugin? With the spoon runner I could do something like:
java -jar spoon-runner-1.7.1-jar-with-dependencies.jar --apk app.apk --test-apk test.apk --e package=com.example.test.mytests
Preferable i would like to pass the package to the gradle command with something like
./gradlew spoonAndroidTests -PspoonPackageName=com.example.test.mytests1,com.example.test.mytests2

I almost got what I wanted. seems only a single package is supported. I got working like:
spoon {
    ...
    if (project.hasProperty('spoonPackageName')) {
        instrumentationArgs = ['package='+ project.spoonPackageName]
    }
}

And the gradle command:
./gradlew spoonAndroidTests -PspoonPackageName=com.example.test.mytests1


Restrict size and type of files that can be uploaded

Currently there are no restrictions on the file types we allow to be uploaded.  We need to restrict this to
docx, txt, pdf, .odx
Note the same restrictions are added to the UIs of our apps:

Admin admin#206
Apply apply#330
Assessments assessments#42

@warrensearle is this done?

@Rebecca-mcknight1991 no this has not been implemented yet

@warrensearle I have had a quick scan of the code in the Digital Platform repo and I can't see any 'upload file' functionality in it.
The only thing I found relating to files was a google-drive.js file. It contains a createFile() function but there is no uploadFile() function or anything like that.
Perhaps I'm looking in the wrong place...
I think I need to understand how the Digital Platform repo is involved in the upload process.
Please advise
Darrel

[ ] Check what file types should be allowed
[ ] Check what is currently allowed and update the code to match the above

[ ] Admin portal
[ ] Apply portal
[ ] Assessment portal

[ ] Restrict storage rules in the Digital Platform itself

Development Plan:

[ ] Update the code so that only correct file types and sizes are allowed:

[ ] Admin portal
[ ] Apply portal
[ ] Assessment portal
[ ] Digital Platform (storage rules)

@KateMJAC  and @warrensearle   are you content with this please?

@HalcyonJAC I can confirm the requirement is Digital platform. Admin portal, Apply portal and Assessment portal is out of scope for this requirement. Can you create a ticket that capture Apply portal, Admin portal and Assessment portal this will be worked on, on a later date.

As discussed with @warrensearle the changes made to Digital Platform (storage rules), JAC Kit and Admin portal can go live once they have passed code review. However, the changes made to the Apply and Assessment portals should be shelved for now as having them use the JAC Kit in general is part of a bigger ticket.

Hello @HalcyonJAC this ticket is part of the Handling Files and Virus scanning epic. I'm guessing that work on the files size and type doesn't really address risks associated with malware?
We'll get that on the RM if not.


[WIP] Accept dpctl.tensor.usm_ndarray as a valid type for @dppy.kernel

We add support for dpctl.tensor.usm_ndarray in @dppy.kernel. Users can now allocate a usm_ndarray and pass it to @dppy.kernel. Example is added in numba_dppy/examples/usm_ndarray.py

Support for arbitrary array in @numba_dppy.kernel with __sycl_usm_array_interface__ attribute is already implemented. We do not need multiple array containers now.