compile error

Compiling foundry-config v0.2.0 (https://github.com/foundry-rs/foundry.git?rev=617dfc28#617dfc28)
error[E0277]: ? couldn't convert the error to EtherscanError
--> /root/.cargo/git/checkouts/foundry-f7cca724e93059b0/617dfc2/crates/config/src/etherscan.rs:320:41
|
320 |         let api_url = into_url(&api_url)?;
|                                         ^ the trait From<reqwest::Error> is not implemented for EtherscanError
|
= note: the question mark operation (?) implicitly performs a conversion on the error value using the From trait
= help: the following other types implement trait From<T>:
<EtherscanError as Fromreqwest::error::Error>
<EtherscanError as Fromstd::io::Error>
<EtherscanError as From>
= note: required for Result<foundry_block_explorers::Client, EtherscanError> to implement FromResidual<Result<Infallible, reqwest::Error>>
error[E0277]: ? couldn't convert the error to EtherscanError
--> /root/.cargo/git/checkouts/foundry-f7cca724e93059b0/617dfc2/crates/config/src/etherscan.rs:324:21
|
324 |             .build()?;
|                     ^ the trait From<reqwest::Error> is not implemented for EtherscanError
|
= note: the question mark operation (?) implicitly performs a conversion on the error value using the From trait
= help: the following other types implement trait From<T>:
<EtherscanError as Fromreqwest::error::Error>
<EtherscanError as Fromstd::io::Error>
<EtherscanError as From>
= note: required for Result<foundry_block_explorers::Client, EtherscanError> to implement FromResidual<Result<Infallible, reqwest::Error>>
error[E0308]: mismatched types
--> /root/.cargo/git/checkouts/foundry-f7cca724e93059b0/617dfc2/crates/config/src/etherscan.rs:326:26
|
326 |             .with_client(client)
|              ----------- ^^^^^^ expected Client, found reqwest::Client
|              |
|              arguments to this method are incorrect
|
= note: reqwest::Client and Client have similar names, but are actually distinct types
note: reqwest::Client is defined in crate reqwest
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.27/src/async_impl/client.rs:69:1
|
69  | pub struct Client {
| ^^^^^^^^^^^^^^^^^
note: Client is defined in crate reqwest
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.2/src/async_impl/client.rs:71:1
|
71  | pub struct Client {
| ^^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate reqwest are being used?
note: method defined here
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/foundry-block-explorers-0.2.4/src/lib.rs:327:12
|
327 |     pub fn with_client(mut self, client: reqwest::Client) -> Self {
|            ^^^^^^^^^^^
Some errors have detailed explanations: E0277, E0308.
For more information about an error, try rustc --explain E0277.
error: could not compile foundry-config (lib) due to 3 previous errors

fixed


How I make a mat-table printable (output to a printer)

Hi,
I test:
<mat-table [dataSource]="dataSource" matSort matSortActive="fullName" matSortDirection="asc" id="print-section">
print(): void {
let printContents, popupWin;
printContents = document.getElementById('print-section').innerHTML;
popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');
popupWin.document.open();
popupWin.document.write(       <html>         <head>           <title>Print tab</title>           <style>           //........Customized style.......           </style>         </head>     <body onload="window.print();window.close()">${printContents}</body>       </html>
);
popupWin.document.close();
}
But it do not work.
Regards Ingo

I don't know if you can use the mat-table since it requires angular material js, you would have to pass the script files to the print window along with the css.
What I currently do is I have a hidden component where I pass the data from my mat-table.  The component's html is just a simple table styled with bootstrap.  I then print that table and make sure to pass bootstrap css to the print window.
If you want something with the material style, you can download the css and js for Material Lite.  Style the printing table according to the guidelines and pass the css and js files to the print window and it should print the mat lite table, which is very similar to angular material.
Also, make a Stackblitz since it is easier for people to help you

Please keep GitHub issues for bug reports / feature requests. Better avenues for troubleshooting / questions are stack overflow, gitter, mailing list, etc.
(this is a canned response)


Component styling injection

Component styling injection works now! :fire:
There's one problem with it, everytime you go to a new component the style tags of that component are added, but the old style tags are not removed. I.e. after a while you end up with 100000s of style tags in a) the DOM and b) all the iFrames, which doesn't seem very healthy:

This was taken after clicking back and forth between the Button and the ImmutableList about 5 times

I fixed the problem, now the general client styles persist even across navigation events and we remove all the unnecessary style nodes when going to a new component!
Now we have a new problem though, because the basic plugin styling that persists across all components (i.e. the Card styling, the wrapper styling,…) gets removed too, which makes for a very ugly flash of unstyled content.
The thing is that those plugin-specific style tags aren't actually in any particular order, so we can't just say "Don't discard the first three ones". Also, the plugin should have to say which style nodes to keep and which ones to throw away, since that's going to be different for each plugin…


[Awaiting Payment 15th April] Payment issue for E/App PR#39181

Issue created to compensate the Contributor+ member for their work on https://github.com/Expensify/App/pull/39181
E/E issue linked to the PR - no internal issue.
Contributor+ member who reviewed the PR - @hungvu193 .
Wait 7 days after the PR is deployed to production before issuing payment in case there are regressions.

Deployed to prod 3 hours ago. Updated the title!

👋 @mountiny can you confirm the payout amount for this issue type? Thanks!

it was a simple PR test, $250

Cool, payment summary as follows:

$250 to @hungvu193 for the PR review

Offer sent!

Cool, payment summary as follows:

$250 to @hungvu193 for the PR review

Offer sent!

I've accepted! Thank you

Paid!


sdk order.sell not working for ERC1155

I'm trying to create a sell order from my front-end client on an RFC1155 token I own and I'm getting the following error:
{
  "code": "INCORRECT_LAZY_ASSET",
  "message": "Invalid signatures for creators [0x28d431d565b97815473a4773634acbfc1f12421b] for lazy asset on make side",
  "status": 400
}

Here's the code:
const orderBuilder = await raribleSdk.order.sell({
  makeAssetType: {
    assetClass: 'ERC1155',
    contract: toAddress(
      config.get('myown1155contractaddress')
    ),
    tokenId: toBigNumber(
      extractTokenIdFromItemId(nft.previewNft.itemId)
    ),
  },
  maker: toAddress(ownership.owner.ethAddress),
  amount: quantity,
  price: getValues('price'),
  payouts: [],
  originFees: [
    {
      account: toAddress(config.get('myownaddress')),
      value: 250,
    },
  ],
  takeAssetType: { assetClass: 'ETH' },
});

and here's the request I see in the browser:
{
  "maker": "0x28d431d565b97815473a4773634acbfc1f12421b",
  "make": {
    "assetType": {
      "@type": "ERC1155",
      "contract": "0x927b2ed99edd05a1fbef4de4e1775ada0901d4c2",
      "tokenId": "18467429459816144863947812166421793754398676185957064781363011930739185811472",
      "uri": "/ipfs/QmSsKPRpMwUHNT7fJDJQ3nRsBAJBNskeatbYhNtTKr9uL8",
      "creators": [
        {
          "account": "0x28d431d565b97815473a4773634acbfc1f12421b",
          "value": 10000
        }
      ],
      "royalties": [
        {
          "account": "0x28d431d565b97815473a4773634acbfc1f12421b",
          "value": 500
        },
        {
          "account": "0xee5f8c3e15b2d9280f060f01fc08c2f2f3b4476b",
          "value": 1000
        }
      ],
      "signatures": [
      "0x107899f9ff79bad2c9659c6154d661c5badf20daea4e6f5bcb820d5fe946674e47cb524e0f53842d1df04304ff65da14343a8cb2b5e2cc2b3f87c2f47d3face01c"
      ],
      "supply": "10",
      "assetClass": "ERC721_LAZY"
    },
    "value": "2"
  },
  "take": { "assetType": { "assetClass": "ETH" }, "value": "2" },
  "type": "RARIBLE_V2",
  "data": {
    "dataType": "RARIBLE_V2_DATA_V1",
    "payouts": [],
    "originFees": [
      { "account": "0x28d431d565b97815473a4773634acbfc1f12421b", "value": 250 }
    ]
  },
  "salt": "34945805662674558592829447995129376213206409534291223948514422231105297539999",
  "signature": "0x24bda6f87871cc6fbac173e60aa46b95847a42c1ac7097c5b59bb346289dd1a367272f444f15009d4d875570e154d51aabd1235ea44b3d635af46b20e87d6ee11b"
}

I'm 100% sure I own the NFT, so I'm not sure how the signature could be wrong. I set all this up by following the README on this repo and on the protocol-example repo. Am I sending wrong params when calling order.sell?
I do see "assetClass": "ERC721_LAZY" in the request body, which does seem completely wrong since I'm dealing with an 1155.

Closed in favor of https://github.com/rarible/protocol/issues/150


Settings of RGB sensor

Required Info

Camera Model
{ D435 }

Firmware Version
2021-05

Operating System & Version
Linux (Ubuntu 18.04)

Kernel Version (Linux Only)
-

Platform
NVIDIA NX

SDK Version
- }

Language
{C }

Segment
{Robot }

Issue Description
I have two images with different settings (I suppose), the quality of the image is completely different if you look at the two images below, could you tell me which setting on the realsense camera affects the image like this?

Hi @r91andersson  The warm intensity of the colors in the lower image looks as though the value of the RGB White Balance option has been increased.  As White Balance is increased above the default value of '4600', the RGB image's colors become progressively stronger, like pale green grass becoming a strong, vibrant green.

Hi @r91andersson  Do you have an update about this case that you can provide, please?  Thanks!

No thanks! Thanks for the help
Den tis 30 maj 2023 19:38MartyG-RealSense @.***> skrev:

Hi @r91andersson https://github.com/r91andersson Do you require further
assistance with this case, please? Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/11795#issuecomment-1568820501,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFO7TUAAN3SEWGX6KY6WGO3XIYWBVANCNFSM6AAAAAAX6TAT4U
.
You are receiving this because you were mentioned.Message ID:
@.***>

You are very welcome.  Thanks very much for the update!


use data-instgrm-captioned

How can I use data-instgrm-captioned (option to show post text) in case of instagram?

hey @marcosvspimenta! Thanks for pointing this out. I'll look into adding support for this via a prop for that embed component.

@marcosvspimenta Added this to the latest version.
To install:
npm i react-social-media-embed@latest

You can now specify the captioned prop to show the caption. See the live example here.


'Run only selected code' does not work for me (JS)

When i select some code in my .js file and press 'ctrl-shift-b' empty console appears with only info about time that executing took ([Finished in 0.138s]). But when nothing is selected everything works fine.

@dengayevskiy could you provide a code example that reproduces this issue? A quick hello world works for me.

For me even console.log("hello world"); does not work. It gives me empty console with only time finished.

Create a .sh script that runs env. In particular, check out what PATH is. Also, try which node.

Run selection for JavaScript doesn't work for me either (empty console, only time elapsed appears). Without selection it runs correctly. Also run selection for PHP works fine. What exactly should I check if I run env  / which node in a .sh file?

What's the code you're running?

Nothing special:
// Test 1
console.log('foobar');
// Test 2
var foo = 'bar';
console.log(foo);

@dengayevskiy @claudiojs Try again with the latest update.

After the last update (3.15.0):

Running JS scripts (selecting a line or not) throws an error: "The command "bash" could not be found".
Executing php scripts works well.

@claudiojs So, therefore, you have php somewhere on your PATH, but not bash. Are you on Windows?

Correct, Windows 10.

@claudiojs Ah ok, well JavaScript (and CoffeeScript) grammars are now using bash -c 'babel …' | node (piping the output of babel into node) to take advantage of the Babel configuration [set up especially to target Atom] within this package instead of having to set it up locally for every project or worse, globally. This gets around the limitations of the previous babel-node approach, and also doesn't alter the current working directory for the actual code being run. I thought bash was supported on Windows now?

Not yet.

@claudiojs Fixed in #1451.

Perfect, thank you!


Ability to include PITCHME.yaml files

It would be nice to have an ability to include another PITCHME.yaml in PITCHME.yaml.
Implementation
Just use simple include key with path to another PITCHME.yaml. For simplicity and consistency with other features, the path is relative to the repository root: include: PITCHME.yaml
Reasoning
Some settings in PITCHME.yaml can be specific for presentations, som other settings can be global.
For example there will be master PITCHME.yaml in the root of the repository, where will be specified colors, fonts, code highlighting style, custom CSS etc. In general there would be global design/theme settings.
And there will be another PITCHME.yaml next to the presentation itself (next to PITCHME.md). In this yaml file, we can just include the master yaml and add/update other setting. For example:
include: PITCHME.yaml # Global settings for all my presentsations.

# Every presentation has its own title.
title: My Super Presentation

# I want different logos for different presentations, or maybe I do not want any logo in some.
logo: https://example.com/path/to/logo.png

Things to consider

Depth of including. Again for simplicity, I believe that it is enough to support just one level of include (the same as including PITCHME.md files). So included PITCHME.yaml cannot contain include key.
In general, I think that mostly the include will be at the begining of the file. But i should be clear the behavior if the include is somewher in the middle. Possibilities:

Force the include (if present) to be the first key in .yaml. Show error if it is not the case.
Allow include to be anywhere, but always process it first. So local settings will always override global settings, even if they are before the include.
Allow include to be anywhere and process the files from top to bottom. So process settings in local file, then include global file and process that - it may override already set settings. Then process the rest of local file, which will override any previous settings. This is probably the expected behavior.

Hi Stano, thanks for submitting this interesting feature request. And for providing a clear, detailed description. My gut reaction, very nice idea. I don't know when I can get to this but for right now I'll simply keep the thread open to see if others in the GitPitch community also express interest in this feature with an up-vote or additional commentary. Lets see what happens. Cheers, David.

This would be very useful for modular courseware slides. I could have a master yaml to keep a consistent look and feel to all my courses but override logo or footer with something course specific.

Thanks for the additional input @jesfer.

I also see this a very nice to have. For a full level course where you will have several modules having a global look and feel while having separate details for individual modules would be very nice.


Standalone.cls and related problems

Hi!
When I run the script In lllustrator 2021, I get the following error:
"This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/W32TeX) (preloaded format=pdflatex 2019.3.26)  5 MAY 2021 17:56
entering extended mode
 restricted \write18 enabled.
 file:line:error style messages enabled.
 %&-line parsing enabled.
**LaTeX2AI_item.tex
(./LaTeX2AI_item.tex
LaTeX2e <2018-12-01>
(./LaTeX2AI_header.tex

! LaTeX Error: File `standalone.cls' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: cls)

Enter file name:
./LaTeX2AI_header.tex:27: Emergency stop.
<read *>

l.27 \KOMAoptions
                 {fontsize=11pt}^^M
Here is how much of TeX's memory you used:
 14 strings out of 494562
 293 string characters out of 6175863
 52246 words of memory out of 5000000
 3770 multiletter control sequences out of 15000+600000
 3640 words of font info for 14 fonts, out of 8000000 for 9000
 14 hyphenation exceptions out of 8191
 12i,0n,8p,128b,8s stack positions out of 5000i,500n,10000p,200000b,80000s

./LaTeX2AI_header.tex:27:  ==> Fatal error occurred, no output PDF file produce
d!

But if I generate a debug folder, I can run the bat-file and the correct pdf is created. (I use the pythagoras example).
I already reinstalled MikTex (this time as a local user, what is recommended) - but what I had noticed, that I needed to manually run the script twice (?) so that MikTex on-the-fly installed the packages.

next I tried running illustrator as Administrator - then the script works, but I get the following error

but the output is generated (jei!)
On further testing, the Administrator error only occurs, if I selected a locked layer. The object is created, but with the error message.
Thus now I think I found a secondary, unrelated bug, and maybe my MikTex installation somehow doesnt like to run under no-admin conditions ;)

The fact that the plugin fails, but the debug batch works is strange. I assume, that you tried again after you got the batch file to work? If I remember correctly, the first time LaTeX requires a missing package, MikTeX installs it on the fly, maybe that causes some problems. I personally use TeXlive and not MikTeX, so I do not have a lot of experience with MikTeX.
Did you check, that the correct images are created when running Illustrator as Administrator? Please try again with this version, the error output should be more expressive in this case.


soc: qn9090 and board dk6_qn9090

Adds support for the qn9090 soc of NXP

Needs to be rebased as it contains also the NFC changes at the moment


Fix more ordering problems

This started as just fixing the ordering SSODescriptor NameIDFormat, but escalated once it became apparent that a lot of other elements could potentially be unsorted.
With a few exceptions (hopefully only the elements which are updated rather than being destroyed / created again), everything should now be sorted by some field that won't change randomly.

Do we need to think about indexes on these new ordered columns?

The collections should be small enough that the foreign key index is sufficient. (Of the order of ~10 records)


Segfault with any non-trivial function content (e.g. a call to fetch)

Bug report

[x] I confirm this is a bug with Supabase, not with my own application.
[x] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug
The following edge function
// hello/index.ts
import { serve } from<EMAIL_ADDRESS>
serve(async (req) => {
  console.log("starting 'hello'");
  await fetch("https://www.google.com");
  console.log("end");
  return new Response("ok");
});

results in the following output:
main function started
serving the request with /home/deno/functions/hello
[Info] Listening on http://localhost:9999/

[Info] starting 'hello'

Segmentation fault (core dumped)

To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

(git clone git@github.com:supabase/supabase.git && cd supabase/docker)
docker run -it --net=host --entrypoint=/bin/bash -v ./volumes/functions:/home/deno/functions supabase/edge-runtime:v1.22.3
On the host system, edit volumes/functions/hello/index.ts to contain the example code above
Inside the container, run edge-runtime start --port 9000 --main-service /home/deno/functions/main
On the host system, run curl http://localhost:9000/hello

System information

OS: Manjaro Linux 23.1.0

PS: Thank you for your great work on Supabase! I've been enjoying working with it a lot and we're planning to use it on many upcoming projects.

...I just realized that this is most likely a duplicate of #199. The error seems to occur with any non-trivial function content that takes longer than a few ms to execute. Here is another example:
// hello/index.ts
import { serve } from<EMAIL_ADDRESS>
serve(async (req) => {
  console.log("start");
  function busyWait(duration) {
    const end = Date.now() + duration;
    while (Date.now() < end) {
      console.log(Math.sqrt(Math.random()));
    }
  }
  busyWait(100);
  console.log("end");
  return new Response("ok");
});

...and as mentioned in #199, I can confirm that the error doesn't appear using version v1.21.1 of the docker image.


Cleaning problematic ableist/saneist terms

It has come to my attention that crystal's source code contains problematic ableist/saneist terms and/or pejoratives, namely

crystal/spec/std/big/big_rational_spec.cr
Line 99 in 421497e
sanity check things aren't swapped

Some of this slipped into the documentation. In an attempt to make crystal's community more inclusive and welcoming, we should clean up these usages and replace them with something neutral (where applicable). Unfortunately, to this day many developers deem such efforts as "trolling", so please note that the precedent has already been set by many major projects. Here're just a few:
unpkg/unpkg.com#81
reduxjs/redux#2335
rtfd/readthedocs.org#3752
krzysztofzablocki/Sourcery#2
xi-editor/xi-editor#126
Other resources:
https://english.stackexchange.com/q/282282
http://isthisableism.tumblr.com/sluralternatives
The goal of this issue is not to stir up arguments, but to figure out the alternatives and ways to replace those problematic terms.
Assistance is greatly appreciated, thank you.

The highlighted phrase and other are already changed in master.
If others are found please report them so the situation can be improved.
Thanks

Thank you so much, it's so much more inclusive now. My rabbi will be pleased

@bcardiff https://boards.4chan.org/pol/thread/186604776


fix: removing extra pair of quotes in keyword filter

Explanation of Change

Removing the extra pair of quotation marks wrapped around keywords that contain a colon since it is a special character to be sanitized properly.
Fixed Issues

$ https://github.com/Expensify/App/issues/52923
PROPOSAL: https://github.com/Expensify/App/issues/52923#issuecomment-2492749621
Tests

Go to search.
Click "Filters".
Click "Has Keywords".
Enter a link that starts with an HTTP protocol eg: https://google.com.
Click on "Save".
Click "View Results" or "Save Results"
Check the that link has not been wrapped with double quotation marks or altered.

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

Offline tests

Same as tests
QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."

Go to search.
Click "Filters".
Click "Has Keywords".
Enter a link that starts with an HTTP protocol eg: https://google.com.
Click on "Save".
Click "View Results" or "Save Results".
Check that the link has not been wrapped with double quotation marks or altered.
Click on any status many times.
Repeat step 7.

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

PR Author Checklist

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

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

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android - Native.webm

Android: mWeb Chrome

Android - Chrome.webm

iOS: Native

https://github.com/user-attachments/assets/4c5bc4ec-a607-4061-9f68-8e3a6388176f

iOS: mWeb Safari

https://github.com/user-attachments/assets/ddad40bb-9a55-4b0f-8a76-971734696828

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/bdfcfb16-ef4d-4064-9819-f373c26ad9fb

MacOS: Desktop

https://github.com/user-attachments/assets/a6b0a70f-c70b-488b-830f-546801870ded

I noticed a regression with my proposal when entering keywords which are already wrapped in double quotation marks.
Hence, I deviated from the original proposal and found a better solution.
Should I update my proposal for clafications?

Should I update my proposal for clafications?

Yes please.
Which regression did you found?

little bump @Tony-MK

Should I update my proposal for clarifications?

Yes, please. If you decided to update the regex, What makes your regex better than the first contributor's proposal?

Just updated my proposal and it changes the regex to consider the colon as not a special character.

Which regression did you find?

I found a regression when you enter a keyword with quotation marks the app would not allow me to save the search and on pressing view results, the app shows the not found page.
https://github.com/user-attachments/assets/6d4fed2c-199e-4d1f-af45-b3cfba33144e

What makes your regex better than the first contributor's proposal?

How about the second part here?

What makes your regex better than the first contributor's proposal?

How about the second part here?

Oh, both of the regexes are wrong because they will cause a regression where the keywords don't actually give search results when known results are present.
This is because the keyword is already wrapped and the colon is a special character used to split the search type and value. E.g. type: all.
So, the regex we currently use is correct and should not be changed.
However, after investigating the regressions, I noticed that we should remove only one pair of quotes, the first and last quotation marks, from filter.right like how the JSON.parse function does but manually with slice and a custom regex.
keywords.map((filter) =>
    /^".*"$/g.test(filter.right) ?
    filter.right.slice(1, - 1) :
    filter.right
).flat()

What makes your regex better than the first contributor's proposal?

How about the second part here?

Oh, both of the regexes are wrong because they will cause a regression where the keywords don't give search results when known results are present.
This is because the keyword is already wrapped and the colon is a special character used to split the search type and value. E.g. type: all.
So, the regex we currently use is correct and should not be changed.
However, after investigating the regressions, I noticed that we should remove only one pair of quotes, the first and last quotation marks, from filter.right like how the JSON.parse function does but manually with slice and a custom regex.
keywords.map((filter) =>
    /^".*"$/g.test(filter.right) ?
    filter.right.slice(1, - 1) :
    filter.right
).flat()

Do you have any thoughts about the explanation?

Thanks, can you also add unit tests for this case so we won't face it again?

Little bump on the comment above @Tony-MK

Little bump on the comment above @Tony-MK

Sorry about that, it should be ready in a couple of minutes.

Thanks, can you also add unit tests for this case so we won't face it again?

I have added more tests, kindly check.
Thanks

Thanks for your update. I'll check it today!

I think it failed the first testcase, please check the video below:
https://github.com/user-attachments/assets/62a0efd0-cf2d-4366-ba1c-2180ab65530f

I think it failed the first testcase, please check the video below:
Screen.Recording.2024-12-04.at.10.32.58.mov

You included the single quotation marks (') wrapping the query.
If you remove them, '" " " "' -> " " " ", this should work nicely.

If you see in the video, the search query in the first tab is different with other tabs

If you see in the video, the search query in the first tab is different with other tabs

I tried some queries wrapped in single quotes and this occurs because it removes the inner double quotation marks for double-quoted spaces in queries that have single quotes based on the number of spaces it has, Eg:
a) '" "'  ->  ' ' (One space character)
b) '" " " "'  ->  '   ' (Three space characters)
This does not occur, if you replace the spaces with characters, Eg: '" "' -> '"https://expensify.com"'.
Well, let me know if this is an edge case worth fixing since it only involves searching a precise pattern of empty spaces.

If you see in the video, the search query in the first tab is different with other tabs

I tried some queries wrapped in single quotes and this occurs because it removes the inner double quotation marks for double-quoted spaces in queries that have single quotes based on the number of spaces it has. Eg:
a) One space character : '" "'  ->  ' ' -> ' '
b) Three space characters : '" " " "'  ->  '   ' -> ' '
It is similar to how it treats single-quoted wrapped queries with empty spaces and alters the queries into a one-space character wrapped in single quotations, Eg: '   ' -> ' '

On the other hand, this doesn't affect queries with characters.
So, this doesn't happen if you replace the spaces with characters, Eg: '" "' -> '"https://expensify.com"'.

Well, let me know if this is an edge case worth fixing since it only involves searching a precise pattern of empty spaces.

If you see in the video, the search query in the first tab is different with other tabs

I tried testing some queries wrapped in single quotes.
I noticed it removes the inner double quotation marks for double-quoted whitespaces in queries that are wrapped in single quotes into a one-space character wrapped in single quotations, ' '
It is similar to how queries with empty whitespaces wrapped in single quotes are handled, Eg:
a) One whitespace : '" "'  ->  ' ' -> ' '
b) Three whitespaces : '" " " "'  ->  '   ' -> ' ' (same as '   ' -> ' ')
This doesn't affect queries with characters and if you replace the whitespaces with characters, Eg: '" "' -> '"https://expensify.com"', it won't occur.
Well, let me know if this is an edge case worth fixing since it only involves searching a precise pattern of empty whitespaces.

I tried testing some queries wrapped in single quotes.
I noticed it removes the inner double quotation marks for double-quoted whitespaces in queries that are wrapped in single quotes into a one-space character wrapped in single quotations, ' ', Eg:
a) One whitespace : '" "'  ->  ' ' -> ' '
b) Three whitespaces : '" " " "'  ->  '   ' -> ' '
It is similar to how queries with empty whitespaces wrapped in single quotes are handled, Eg: '   ' -> ' '.
This doesn't affect queries with characters and if you replace the whitespaces with characters, Eg: '" "' -> '"https://expensify.com"', it won't occur.
Well, let me know if this is an edge case worth fixing since it only involves searching a precise pattern of empty whitespaces.

The problem here is the inconsistency when switching between the filter tab

I updated the regex. Check if the problem persists.

Please update the screenshots/video based on your new changes and make sure the original issue + the issue comment above don't appear. Test it carefully before requesting a re-review. Thanks.

Please update the screenshots/video based on your new changes

I retested the changes and updated the videos.

make sure the original issue + the issue I commented above don't appear.

I am not sure what you meant.
Can you explain further?

@Tony-MK I think we're still facing the same issue. Please look at the video below:
https://github.com/user-attachments/assets/3ea91f1e-c60e-4d4a-8d12-d4a48bf7e55d
I'm still seeing extra " was added into our string.

Can you give the steps to replicate this issue?
I tried to replicate it but failed.
https://github.com/user-attachments/assets/f2ca26d5-d5b0-48f4-99b2-7495fa8c3b07

I think in the above video that you posted when you enter "https://facebook.com" and press Save Search, the filter text returned ""https://facebook.com""which had extra doule quote mark.

I think in the above video that you posted when you enter "https://facebook.com" and press Save Search, the filter text returned ""https://facebook.com""which had extra doule quote mark.

Yeah, but it only adds double quotes, not more than that.
That's by design.
The sanitizeSearchValue function will add the extra double quotes if the keyword already has them, and then searchParser.parse can remove them.
https://github.com/Expensify/App/blob/7be9987ce91638600b5f61c8652c50517c2ca001/src/libs/SearchQueryUtils.ts#L39-L42

Therefore, "http://facebook.com" returns ""http://facebook.com"".

Hmm, I'm afraid I have to disagree with you at this point, if our keyword's already wrapped inside ", I think we shouldn't add ".

Hmm, I'm afraid I have to disagree with you at this point, if our keyword's already wrapped inside ", I think we shouldn't add "

That's okay, I understand.
However, I am a bit scared that search regressions will arise like getting unexpected or no search results, since the double quote is specifically used in the regex in sanitizeSearchValue to wrap any keyword with special characters even if has it has double quotes itself.

WDYT?

Nevertheless, before I push the new changes, I would like to ensure that this is an issue I need to correct.
After saving or viewing the results, if you entered a link that is already wrapped once, "https://google.com", on the filters page, the keyword is displayed as https://google.com without the double quotes instead of "https://google.com".
Hence, a user can not search for the exact keyword if it has a single pair of double quotes wrapping it such as "https://google.com" because it will change to https://google.com and are treated as identical keywords.
https://github.com/user-attachments/assets/4a73277f-f085-45b0-89e4-a6a24d23f1f9

Thanks for your update. I'll take a look today!

Look like serrver is down, I can't test it atm

Nevertheless, before I push the new changes, I would like to ensure that this is an issue I need to correct.
After saving or viewing the results, if you entered a link that is already wrapped once, "https://google.com", on the filters page, the keyword is displayed as https://google.com without the double quotes instead of "https://google.com".
Hence, a user can not search for the exact keyword if it has a single pair of double quotes wrapping it such as "https://google.com" because it will change to https://google.com and are treated as identical keywords.

After taking tests, I agree with you at this point

@Tony-MK Can you merge main please?

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

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

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

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

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

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

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] For any bug fix or new feature in this PR, I verified that sufficient unit tests are included to prevent regressions in this flow.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/d47760ee-1e03-4539-94bb-7cc808624e6a

Android: mWeb Chrome

https://github.com/user-attachments/assets/5e4c5abc-dbb7-4d17-8533-d678f54baa99

iOS: Native
https://github.com/user-attachments/assets/77878bcd-3fc7-4dfb-a2bc-fcff47cb4d08

iOS: mWeb Safari

https://github.com/user-attachments/assets/fab0adf5-2346-4365-abd5-f118d0f05691

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/9a00735b-ac66-4bee-818b-23d2c115b608

MacOS: Desktop

https://github.com/user-attachments/assets/a85e39ae-3594-485c-97f8-17cc62bc0df7

Hey, I'll take a look at this tomorrow

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


Question: Viability of using synchronization primitives within async on_open and on_close

First off, I've got to give my thanks to you and the contributors who worked on this project. I have had nothing but great experiences with Scrapli, especially with all the flexibility that's built-in.
I've been using BoundedSemaphores in my async script to limit the number of concurrent asyncssh connections while they perform their necessary operations. This is entirely fine, but I recently encountered an issue where I was forgetting to close connections before releasing the semaphore lock. This got me thinking about on_open and on_close.
In the contributors (or any other experienced users) opinions, are user functions supplied to on_open and on_close called reliably enough to warrant handling the acquisition and releasing of async locks?

👋 hey @rlad78 thanks for the kind words!

In the contributors (or any other experienced users) opinions, are user functions supplied to on_open and on_close called reliably enough

I should think "yes"! on open is always called (if set) during open, and the same is true for on close... for the latter obviously you'd still have to remember to call close (either manually or just letting a context manager do it for you). id imagine in your custom on open/close you could call some other func / access some global to get a lock and acquire/release it for a given connection.
is there any reason you'd think they wouldnt be called reliably?

Hi @carlmontanari ! Thanks for the quick response. I didn't want to be naive and assume they were always guaranteed to be called. Never know if something like an exception raised from a connection loss could throw the normal process flow off.
Appreciate the reassurance 👍

ah fair -- yeah I think in the timeout scenario it wont (see the well timed #285) -- will investigoogle things a bit this weekend I hope and report back; and/or if you're open to lookin at the other issue and maybe seeing if you see a good path in a pr that would be great too!

I think I'll go ahead and close this one and invite ya to chime in over in #285 if that works. defo lemme know if these are different things though (I think they are actually extremely well timed similar things though!)


Build and publish example projects in CI

It would be nice if we built and published the bevy_ggrs example when merging to main and/or tagging.
Could perhaps use github pages for hosting.
To actually build and bundle the app we could use something like an xtask approach, at least that's what I've done on my other private projects, and I'm fairly happy with it: https://github.com/matklad/cargo-xtask

How would we host the signalling server?

For a couple of other projects, I use a setup that watches a docker register and redeploys a compose stack on new images. Setting it up for matchbox server as well should be quite easy.

Ah, should've been more specific with this one, do we have hardware available to deploy the server on?

yeah, I have a vps that always pulls and runs the latest image for each tag. So if we can just package and publish the html, we're there.

Sweet, can throw that together over the weekend


Support for 3.13?

(Sorry, hit enter before filling in issue contents.)
Hit this trying to build for 3.13 windows in pydantic-core. https://github.com/pydantic/pydantic-core/actions/runs/9647647378/job/26606981597?pr=1340#step:6:237
I guess the complication here is the pre-release nature of 3.13. The approach we're taking in PyO3 is that the API and ABI are meant to be stable already, so I think it's probably correct to add support here now, though open to opinions.
Side note: I hit this because of https://github.com/PyO3/maturin-action/issues/275, which drove me to build on an older Python version to avoid cffi incompatibility with 3.13. I think that's why the 3.13 shared library is missing and we're generating an import lib.

It doesn't look difficult, because it basically relies on https://github.com/actions/setup-python to collect the Python shared libraries. I'll give it a try.

Thank you! 🚀

Thank you! 🚀

v0.2.10 is on crates.io now.


test

Column 1
Column 2

```yaml
```yaml

key1: value1
key4: value4

key2: value2
key5: value5

key3: value3
key6: value6

```
```


Generate codemeta for the repo

Machine-readable description of software. https://github.com/codemeta/codemeta
An optional but I think useful item on the JOSS submission list.

Done or won't fix?

Done or won't fix?

Won't fix in the near future. And it is an optional item for JOSS.


Use the flux ratios/magnitude differences as features anyway

Maybe add some tests showing if they're useful at all for the thesis.
Also, I should look up the SWIRE analogue of that WISE diagram reproduced in the Banfield et al. (2015) paper.

Implemented in #154.


Build system changes

This is a pretty large refactoring of the build system to make use of newer meson features.
It bumps the minimum meson version to 0.47.0 and changes our meson_options.txt, breaking build scripts.
The individual commits largely reflect each major change, but the main changes are:

Use new feature option type for most features. The enable- prefix was dropped, so you don't have to do anything silly like meson configure -Denable-xwayland=enabled, and is more consistent with meson's style guide anyway.
An advantage of this is that you can explicitly turn all features off/on with a single switch, preventing any accidental linking of dependencies (good for distro maintainers).
Change how libsystemd/libelogind is selected with a combo option called logind-provider. They're mutually exclusive, so I think this is cleaner.
Install all headers explicitly. I just think this is nicer, but I wouldn't really care that much if someone wanted to revert this.
Generate config.h/version.h from config.h.in/version.h.in instead of from scratch.
This allows us to add comments if we wanted to, and users can see the /* #undef WLR_HAS_FEATURE */ inside the header. Again, I'm not super concerned if someone opposes this.
Various small changes; see the commits.

There are some other changes I want to make, but it'll probably need more discussion before they get done:

Remove all of the internal static libraries that get linked together.
I think these are largely pointless, and just complicate the build system with unnecessary dependency management and boilerplate.
Just build them as a single library; that's how it's going to end up anyway.
Change the indentation to be consistent with meson's style guide.
I think it's better to follow conventions. It's not like our build system needs to be the same as our actual source code.

Closes #1082

Another thing which I wanted to bring up was that I want to remove the ctags/etags from the build system.
I really think it has no business being there, as it's very specific to a developer's own workflow, which I don't think needs to live inside the repository. We don't include things like *.swp in .gitignore, which I consider to be on the same level.
Not to mention, it's reliant on files being checked into git, which is somewhat flakey.
If someone wants to generate this stuff automatically, just write a git hook. It'll basically get you the same result.

Another thing which I wanted to bring up was that I want to remove the ctags/etags from the build system

No

Not to mention, it's reliant on files being checked into git, which is somewhat flakey

So fix this? As mentioned before it's not hard to replace this with find -name "*'c".

Use new feature option type for most features.

Nice.

Install all headers explicitly. I just think this is nicer, but I wouldn't really care that much if someone wanted to revert this.

On one hand, we do list all C source files, so it makes sense to do the same for headers. However while it's easy to detect when a C file is missing (linker errors), it's trickier to notice we forgot to add a header to the list.

Change the indentation to be consistent with meson's style guide.

Meh.

Another thing which I wanted to bring up was that I want to remove the ctags/etags from the build system.

(Yes.)
All the other things: I don't really care, I'm fine with either.

The changes look good to me. If you want to refactor etags/ctags before merge let me know.

If you want to refactor etags/ctags before merge let me know

Nah, I'd be fine with this being merged now.

Thanks!

This has been reverted - didn't realize that this breaks the build when wlroots is compiled as a meson subproject.

After a quick bisect, the commit causing the issue is the -I removal in https://github.com/swaywm/wlroots/pull/1194/commits/869dca1bce662e685a83a33f7550644817265fb9, but it's pointing out a flaw in glgen.sh rather than the commit itself.
Basically, the header is generated in a path from the parent project, which isn't in our include paths, and we can't add it cleanly.
Coming up with a solution isn't hard, but I can't decide which is the best one.

 You'll need to check if that function
 # is NULL before using it.

+# There is no POSIX-compliant utility to do this directly, so we just have to
+# do it ourselves.
+absolute() {
+    case $1 in
+    /*)
+        echo "$1"
+        ;;
+    *)
+        echo "$PWD/$1"
+        ;;
+    esac
+}
+
 if [ $# -ne 3 ]; then
        exit 1
 fi

 SPEC=$1
-OUT_C=$2
-OUT_H=$3
+OUT_C=$(absolute "$2")
+OUT_H=$(absolute "$3")

 BASE=$(basename "$SPEC" .txt)
 INCLUDE_GUARD=$(printf %s "$OUT_H" | tr -c [:alnum:] _ | tr [:lower:] [:upper:])

Including an absolute path is weird, but perfectly valid.

Remove the include from glapi.c

diff --git a/glgen.sh b/glgen.sh
index b27750e4..a73ee0e7 100755
--- a/glgen.sh
+++ b/glgen.sh
@@ -77,7 +77,11 @@ EOF

 cat > $OUT_C << EOF
 #include <wlr/util/log.h>
-#include "$OUT_H"
+
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
 $DEFN

 bool load_$BASE(void) {

It'd normally be considered bad practive for a file to not include its own header, but I'm more forgiving to it, since it's machine generated code. It doesn't actually need any facilities from the header.

Assume that the generated .c and .h will be in the same directory.
@martinetd's solution above:

diff --git a/glgen.sh b/glgen.sh
index b27750e4..2dc24eec 100755
--- a/glgen.sh
+++ b/glgen.sh
@@ -77,7 +77,7 @@ EOF

 cat > $OUT_C << EOF
 #include <wlr/util/log.h>
-#include "$OUT_H"
+#include "$(basename "$OUT_H")"
 $DEFN

 bool load_$BASE(void) {

I'd also clean up the script arguments and how meson calls it just to remove some redundancy.
The script was written to be somewhat general purpose and not tailored extremely close to how wlroots needs to use it, so it'd be nice to not add that assumption.


WARNING: unable to download video info webpage: HTTP Error 410: Gone. ERROR: Sign in to confirm your age. This video may be inappropriate for some users.

Hiya
Error code:
WARNING: unable to download video info webpage: HTTP Error 410: Gone
ERROR: Sign in to confirm your age
This video may be inappropriate for some users.
URL in inquiry: https://www.youtube.com/watch?v=nSIPR2ZrfKQ
Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2021.06.06
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[ ] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-f', 'bestvideo+bestaudio/best', 'https://www.youtube.com/watch?v=nSIPR2ZrfKQ', '-v']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg 2021-07-18-git-694545b6d5-full_build-www.gyan.dev, ffprobe 2021-07-18-git-694545b6d5-full_build-www.gyan.dev
[debug] Proxy map: {}
[youtube] nSIPR2ZrfKQ: Downloading webpage
[youtube] nSIPR2ZrfKQ: Refetching age-gated info webpage
WARNING: unable to download video info webpage: HTTP Error 410: Gone
ERROR: Sign in to confirm your age
This video may be inappropriate for some users.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 815, in wrapper
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 836, in __extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\common.py", line 534, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\youtube.py", line 1713, in _real_extract
youtube_dl.utils.ExtractorError: Sign in to confirm your age
This video may be inappropriate for some users.
Description
Please kindly fix this issue or provide a valid solution that does not require a verified google account?
Note: After the download with this script failed, I noticed it's possible to download this age-restricted youtube video using some online youtube-downloader websites without any access to a google account, while this script can't download it, I believe the issue is within this script itself. Please kindly fix this issue?
Tnx and best of luck

You can make a request like this:
POST /youtubei/v1/player HTTP/1.1
Host: www.youtube.com
X-Goog-Api-Key: AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8

{"context":{"client":{"clientName":"ANDROID","clientScreen":"EMBED",
"clientVersion":"16.05"},"thirdParty":{"embedUrl":"https://www.youtube.com"}},
"videoId":"nSIPR2ZrfKQ"}

Or, I have a tool that works as well, no account needed:
youtube -e nSIPR2ZrfKQ

https://github.com/89z/mech

Known issue.
Fixed in the yt-dlp fork (no cookies needed):
yt-dlp -v https://www.youtube.com/watch?v=nSIPR2ZrfKQ
[debug] User config file: /home/nico/.config/yt-dlp/config
[debug] User config: ['--list-formats-as-table', '-o', '/dev/shm/test-dlp/%(title)s.%(ext)s', '-f', 'bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', '--no-mtime', '--add-metadata', '--embed-thumbnail', '--force-ipv4', '--sponsorblock-remove', 'all', '--downloader', 'aria2c', '--downloader-args', 'aria2c:-x 10 -s 10 -j 10 -k 1M --log-level=info --file-allocation=none']
[debug] Command-line config: ['-v', 'https://www.youtube.com/watch?v=nSIPR2ZrfKQ']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.09.24 (zip)
[debug] Python version 3.6.9 (CPython 64bit) - Linux-5.4.0-86-generic-x86_64-with-LinuxMint-19.3-tricia
[debug] exe versions: ffmpeg N-103540-g75001ae844-Nico-20210906, ffprobe N-103540-g75001ae844-Nico-20210906
[debug] Optional libraries: Crypto, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=nSIPR2ZrfKQ
[youtube] nSIPR2ZrfKQ: Downloading webpage
[youtube] nSIPR2ZrfKQ: Downloading android player API JSON
[youtube] nSIPR2ZrfKQ: Downloading android agegate player API JSON
[youtube] nSIPR2ZrfKQ: Downloading web agegate player API JSON
[debug] Sort order given by extractor: quality, res, fps, source, codec:vp9.2, lang
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, source, vcodec:vp9.2(10), acodec, lang, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] SponsorBlock query: https://sponsor.ajay.app/api/skipSegments/b6b6?service=YouTube&categories=%5B%22outro%22%2C+%22music_offtopic%22%2C+%22selfpromo%22%2C+%22preview%22%2C+%22intro%22%2C+%22interaction%22%2C+%22sponsor%22%5D
[SponsorBlock] No segments were found in the SponsorBlock database
[info] nSIPR2ZrfKQ: Downloading 1 format(s): 137+140
[debug] Testing thumbnail 39
[debug] Testing thumbnail 38
[debug] Testing thumbnail 36
[debug] Testing thumbnail 35
[debug] Testing thumbnail 34
[debug] Testing thumbnail 33
[debug] Testing thumbnail 32
[debug] Testing thumbnail 31
[debug] Testing thumbnail 30
[youtube] nSIPR2ZrfKQ: Downloading thumbnail  ...
[youtube] nSIPR2ZrfKQ: Writing thumbnail to: /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.webp
[debug] Invoking downloader on "https://r2---sn-5hneknee.googlevideo.com/videoplayback?expire=1632610881&ei=4VVPYbHKFILHWJv9r7gF&ip=<REDACTED>&id=o-AJlj8BkurkXC3G17Ayr_fYeTsOA4OueLmWwhvLGUN6q-&itag=137&source=youtube&requiressl=yes&mh=nv&mm=31%2C26&mn=sn-5hneknee%2Csn-4g5ednss&ms=au%2Conr&mv=m&mvi=2&pl=17&pcm2=yes&initcwndbps=2108750&vprv=1&mime=video%2Fmp4&gir=yes&clen=73334992&dur=175.666&lmt=1573791201383970&mt=1632588792&fvip=2&keepalive=yes&fexp=24001373%2C24007246&beids=9466588&c=ANDROID&txp=2316222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgB5QozUYXLYaIQ6YmmfDSi7pOPvSLbddRyeRRGH9R7lsCIQCGfWvQWDdC3LpFGyvUbKmcKYsc4gYPnUrQALv9xwu6qA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgasyDIJikcBoLdT-4tN8Jz7ZFzwL6916wSuIZxsNmuzUCIEeJP4KQgukrexaJ72ELJG2YnQXMtZdbIvknncouLiea"
[download] Destination: /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f137.mp4
[debug] aria2c command line: aria2c -c --console-log-level=warn --summary-interval=0 --download-result=hide --file-allocation=none -x16 -j16 -s16 --min-split-size 1M --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.80 Safari/537.36' --header 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Encoding: gzip, deflate' --header 'Accept-Language: en-us,en;q=0.5' --interface <IP_ADDRESS> --check-certificate=true --remote-time=false -x 10 -s 10 -j 10 -k 1M --log-level=info --file-allocation=none --dir /dev/shm/test-dlp/ --out './Cosplay and Cars - Underground Tokyo 痛こす08.f137.mp4.part' --auto-file-renaming=false -- 'https://r2---sn-5hneknee.googlevideo.com/videoplayback?expire=1632610881&ei=4VVPYbHKFILHWJv9r7gF&ip=<REDACTED>&id=o-AJlj8BkurkXC3G17Ayr_fYeTsOA4OueLmWwhvLGUN6q-&itag=137&source=youtube&requiressl=yes&mh=nv&mm=31%2C26&mn=sn-5hneknee%2Csn-4g5ednss&ms=au%2Conr&mv=m&mvi=2&pl=17&pcm2=yes&initcwndbps=2108750&vprv=1&mime=video%2Fmp4&gir=yes&clen=73334992&dur=175.666&lmt=1573791201383970&mt=1632588792&fvip=2&keepalive=yes&fexp=24001373%2C24007246&beids=9466588&c=ANDROID&txp=2316222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgB5QozUYXLYaIQ6YmmfDSi7pOPvSLbddRyeRRGH9R7lsCIQCGfWvQWDdC3LpFGyvUbKmcKYsc4gYPnUrQALv9xwu6qA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgasyDIJikcBoLdT-4tN8Jz7ZFzwL6916wSuIZxsNmuzUCIEeJP4KQgukrexaJ72ELJG2YnQXMtZdbIvknncouLiea'
[aria2c] Downloaded 73334992 bytes:8.6MiB]
[download] 100% of 69.94MiB in 00:08
[debug] Invoking downloader on "https://r2---sn-5hneknee.googlevideo.com/videoplayback?expire=1632610881&ei=4VVPYbHKFILHWJv9r7gF&ip=<REDACTED>&id=o-AJlj8BkurkXC3G17Ayr_fYeTsOA4OueLmWwhvLGUN6q-&itag=140&source=youtube&requiressl=yes&mh=nv&mm=31%2C26&mn=sn-5hneknee%2Csn-4g5ednss&ms=au%2Conr&mv=m&mvi=2&pl=17&pcm2=yes&initcwndbps=2108750&vprv=1&mime=audio%2Fmp4&gir=yes&clen=2844681&dur=175.728&lmt=1573791184451219&mt=1632588792&fvip=2&keepalive=yes&fexp=24001373%2C24007246&beids=9466588&c=ANDROID&txp=2311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgd2njYMFZP-NpRQvfzBee7up3Ca6wyp4VwMk9BJjBiWACIGlET5J27quqGLyoqj9coyKtJHMYXSE3y9aLSjaZe5-q&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgasyDIJikcBoLdT-4tN8Jz7ZFzwL6916wSuIZxsNmuzUCIEeJP4KQgukrexaJ72ELJG2YnQXMtZdbIvknncouLiea"
[download] Destination: /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f140.m4a
[debug] aria2c command line: aria2c -c --console-log-level=warn --summary-interval=0 --download-result=hide --file-allocation=none -x16 -j16 -s16 --min-split-size 1M --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.80 Safari/537.36' --header 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Encoding: gzip, deflate' --header 'Accept-Language: en-us,en;q=0.5' --interface <IP_ADDRESS> --check-certificate=true --remote-time=false -x 10 -s 10 -j 10 -k 1M --log-level=info --file-allocation=none --dir /dev/shm/test-dlp/ --out './Cosplay and Cars - Underground Tokyo 痛こす08.f140.m4a.part' --auto-file-renaming=false -- 'https://r2---sn-5hneknee.googlevideo.com/videoplayback?expire=1632610881&ei=4VVPYbHKFILHWJv9r7gF&ip=<REDACTED>&id=o-AJlj8BkurkXC3G17Ayr_fYeTsOA4OueLmWwhvLGUN6q-&itag=140&source=youtube&requiressl=yes&mh=nv&mm=31%2C26&mn=sn-5hneknee%2Csn-4g5ednss&ms=au%2Conr&mv=m&mvi=2&pl=17&pcm2=yes&initcwndbps=2108750&vprv=1&mime=audio%2Fmp4&gir=yes&clen=2844681&dur=175.728&lmt=1573791184451219&mt=1632588792&fvip=2&keepalive=yes&fexp=24001373%2C24007246&beids=9466588&c=ANDROID&txp=2311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cpcm2%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgd2njYMFZP-NpRQvfzBee7up3Ca6wyp4VwMk9BJjBiWACIGlET5J27quqGLyoqj9coyKtJHMYXSE3y9aLSjaZe5-q&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgasyDIJikcBoLdT-4tN8Jz7ZFzwL6916wSuIZxsNmuzUCIEeJP4KQgukrexaJ72ELJG2YnQXMtZdbIvknncouLiea'
[aria2c] Downloaded 2844681 bytesDL:269KiB ETA:1s]
[download] 100% of 2.71MiB in 00:09
[debug] ffmpeg command line: ffprobe -show_streams 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f140.m4a'
[Merger] Merging formats into "/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f137.mp4' -i 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f140.m4a' -c copy -map 0:v:0 -map 1:a:0 -bsf:a:0 aac_adtstoasc 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.temp.mp4'
Deleting original file /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f140.m4a (pass -k to keep)
Deleting original file /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.f137.mp4 (pass -k to keep)
[ModifyChapters] SponsorBlock information is unavailable
[Metadata] Adding metadata to "/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.mp4' -map 0 -dn -c copy -metadata 'title=Cosplay and Cars: Underground Tokyo 痛こす08' -metadata date=20191114 -metadata 'description=Itacos is an underground Akihabara shooting event featuring Itasha (otaku themed cars) and cosplay models.

Event info: https://aroundakiba.tv/news/cosplay-and-cars-underground-akihabara-event/

Cinematography
https://twitter.com/rtplostlink

Support
https://twitter.com/TristanJunker

Event producer
https://twitter.com/xxcross001

If you'"'"'d like to support our projects: https://www.patreon.com/rescuetheprincess

Music
Stranger Things (2 Below Remix)

Click CC to view model credits.' -metadata 'synopsis=Itacos is an underground Akihabara shooting event featuring Itasha (otaku themed cars) and cosplay models.

Event info: https://aroundakiba.tv/news/cosplay-and-cars-underground-akihabara-event/

Cinematography
https://twitter.com/rtplostlink

Support
https://twitter.com/TristanJunker

Event producer
https://twitter.com/xxcross001

If you'"'"'d like to support our projects: https://www.patreon.com/rescuetheprincess

Music
Stranger Things (2 Below Remix)

Click CC to view model credits.' -metadata 'purl=https://www.youtube.com/watch?v=nSIPR2ZrfKQ' -metadata 'comment=https://www.youtube.com/watch?v=nSIPR2ZrfKQ' -metadata 'artist=Rescue the Princess!' 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.temp.mp4'
[ThumbnailsConvertor] Converting thumbnail "/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.webp" to png
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -f image2 -pattern_type none -i 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.webp' 'file:/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.png'
[EmbedThumbnail] mutagen: Adding thumbnail to "/dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.mp4"
Deleting original file /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.png (pass -k to keep)
Deleting original file /dev/shm/test-dlp/Cosplay and Cars - Underground Tokyo 痛こす08.webp (pass -k to keep)

I use Tampermonkey script to bypass age verification on YT i have 40 years now but i dont give google any my ID or credit card information thats. If he give mee safe option to verificate myself is ok i can, but now i dont wont. My account on google mail have 15 years then i send my 1st email when i have 3 year old...
This workaround does not seem to work anymore: https://github.com/ytdl-org/youtube-dl/issues/29333#issuecomment-864049544

@89z I did not really understand what your tool does exactly by "Anonymous API access", it just does the following HTTP request that you originally mentioned, by using an API key of someone else? Which means the API key could expire after some time?
POST /youtubei/v1/player HTTP/1.1
Host: www.youtube.com
X-Goog-Api-Key: AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8

{"context":{"client":{"clientName":"ANDROID","clientScreen":"EMBED",
"clientVersion":"16.05"},"thirdParty":{"embedUrl":"https://www.youtube.com"}},
"videoId":"nSIPR2ZrfKQ"}

I would prefer using my own API key, to not rely on the key of someone else and I don't know if it could affect my security or privacy, for example by keeping a history of watched videos or giving access to my logged in YouTube account using the API key :D
But the yt-dlp fork mentioned by @nicolaasjan is using Python so I could take the patch from here if someone can tell me where it is exactly. For the moment, I was able to use youtube-dl by using the --cookies option like mentioned here: https://github.com/ytdl-org/youtube-dl/issues/29811#issuecomment-900939289

I would prefer using my own API key, to not rely on the key of someone else and I don't know if it could affect my security or privacy, for example by keeping a history of watched videos or giving access to my logged in YouTube account using the API key

https://github.com/89z/mech/tree/master/youtube#how-to-get-x-goog-api-key

I was able to use youtube-dl by using the --cookies option

If you want to do that, go ahead. My tool can make the same request without cookies, so privacy is respected. If you dont care about that, then use whatever works for you.

@pukkandan @nicolaasjan indeed the HTTP request (using JavaScript fetch method) mentioned in the update of my previous comment does not work for the video https://www.youtube.com/watch?v=Cr381pDsSsA, there is an error message "Playback on other websites has been disabled by the video owner.".
So I guess the tool of @89z does not work either for this video because we need to log in to YouTube before using cookies? Can you share the HTTP request or tell me where we can find it on YouTube? When visiting https://studio.youtube.com and viewing a video I uploaded, I can see an HTTP request starting with https://studio.youtube.com/youtubei/v1/creator/get_creator_videos but it seems to work for my videos only because replacing the value of videoIds with the video ID of someone else gives an error CREATOR_ENTITY_STATUS_FAILURE.
For the previous HTTP request using the embed technique, I noticed we can find it on a URL like https://www.youtube.com/embed/lqYeIe1KdCY with the network monitor of the web browser developer tools.

@baptx please stop spamming this issue. "At mentioning" a bunch of people over and over is really annoying.
My tool works fine with Cr381pDsSsA, and has for several months. That video is a well known video that requires authentication, so Im not sure what youre trying to accomplish by bringing it up.
Again, please stop mentioning me in this thread, I am unsubscribing. If you have an issue with my tool, post it on the appropriate repo.

https://github.com/ytdl-org/youtube-dl/issues/30355

tl;dr for people finding this: use nicolaasjan's suggestion above for a working no-cookies fork of youtube-dl (tested in EU)

I also receive this message, despite I include lines with --username and --password in my config with the correct values.
$ youtube-dl -wx https://www.youtube.com/watch?v=sKnPjDu2XNk
Type account password and press [Return]:
[youtube] Downloading login page
[youtube] Looking up account info
WARNING: Unable to look up account info: HTTP Error 400: Bad Request
[youtube] sKnPjDu2XNk: Downloading webpage
[youtube] sKnPjDu2XNk: Refetching age-gated info webpage
WARNING: unable to download video info webpage: HTTP Error 410: Gone
ERROR: Sign in to confirm your age
This video may be inappropriate for some users.

In the example above I've commented out the password in config and entered it manually.

Duplicate of #29578.
See https://github.com/ytdl-org/youtube-dl/issues/30255#issuecomment-974822885.


use external config in examples

some of our tests and examples used plain-text passwords, and this has caused some alarm when people have seen them.  we can say "you can use external but we haven't" though isn't it better if our message is "you should use external just like we've shown" ?
this sets up a pre-defined external provider called
brooklyn-demo-sample which defines hidden-brooklyn-password as br00k11n.
it can be overridden; PR to follow for docs to explain this.
i think examples elsewhere should be updated to use this wherever a plaintext password is encoded in a blueprint for anything other than the simplest teaching example (clearly caveated and linking to the docs).  i'll do the rest of the stock brooklyn ones shortly.

Should we make it easier to disable the provider?  That way a "live" deployment of amp would prevent it's use.  So if a developer forgets to update their yaml to use a real provider it will fail to deploy.

OTOH someone using a live deployment might want to use one of the test blueprints.  The docs describe how to change the password:
https://github.com/apache/brooklyn-docs/pull/209/files#diff-b6c73a383415d543418f8762ce2dbe9eR79
I think that's sufficient.  If someone really wants to disable that key we can tell them to include just the first line there (the provider is present, but empty); if that becomes a popular feature request then we add the ability to completely disable.

note the two other PRs in downstream projects listed above

@ahgittin I think @neykov added a file based external config provider for this, That enable users to configure for development and then swap to a "proper" config provider. You could just configure it by default

Ignore me ... It was never added.
But i do think the flow i mentioned above would be incredibly useful

@m4rkmckenna there is a "file-based exteranl config supplier" you can use for dev (PropertiesFileExternalConfigSupplier), and then switch to Vault or whatever when you're ready.
But I think that @ahgittin's change here is a separate good addition as it means stock examples can work out-of-the-box without the user having to modify brooklyn.cfg to configure things like that, or to add the desired password to some file.

I agree with @drigodwin's suggestion of giving a default in visitors-creation-script.sql so that we don't break other people's examples that might be referencing that file. For Brooklyn 1.0.0 we can remove the default, perhaps first warning people on the mailing list.

Good point re examples pointing to master.  Will add password in script.  But we should probably change links in example to point at specific branches too.


Record default command used to run repo2docker in Dockerfile

When running repo2docker, we might want to record the 'default command' the user wants to run there. This is useful when running the image outside of repo2docker itself. But we have to be careful about what this means for caching.
Similar to #545 and split from https://github.com/jupyter/repo2docker/issues/533#issuecomment-451689268

We might wanna separate this out from the runtime command, maybe - but wanna do the 'right thing' by default as well.

The idea would be to record the build time repo2docker https://github/org/repo my-command-here arg1 arg2 in the Dockerfile by having CMD my-command-here arg1 arg2 (or ENTRYPOINT? Tim can't remember when to use which). Replacing the default which we put in right now independent of what command is specified by the user as argument to repo2docker.

It's been a couple of years, do you still think we should add this?


Add option for setting stack skip

Often times in larger applications one will use wrappers around loggers, alerters, mailers, etc.  to not tie the application code to a specific implementation.
As a crude example..
func (a *alertWrapper) Error(err error) error {
	sentry.CaptureException(err)
	return err
}

In sentry the first stackframe will always report the wrapper code as the caller, followed by subsequent frames which we are actually interested in.
Instead of the approach outlined in #35 would you consider adding an option to directly skip n number of frames. 99% of the time it'd likely be 1, but this would make the API slightly more generous :)

Tbh I don't want to pile up more and more options, especially that with ones like this, that work globally and are based on specific assumptions (eg. that your errors will always start with this frame), it's very easy to shot yourself in the foot. If it removed the frame incorrectly, you'll lose the most important information.
Here's copy-paste solution for your needs :)
func filterAlertWrapperFrames(frames []sentry.Frame) []sentry.Frame {
	filteredFrames := make([]sentry.Frame, 0, len(frames))
	for _, frame := range frames {
		if strings.Contains(frame.Module, "alertWrapper") {
			continue
		}
		filteredFrames = append(filteredFrames, frame)
	}
	return filteredFrames
}

func filterAlertWrapper(event *sentry.Event) *sentry.Event {
	for _, ex := range event.Exception {
		if ex.Stacktrace == nil {
			continue
		}
		ex.Stacktrace.Frames = filterAlertWrapperFrames(ex.Stacktrace.Frames)
	}
	// This interface is used when we extract stacktrace from caught strings, eg. in panics
	for _, th := range event.Threads {
		if th.Stacktrace == nil {
			continue
		}
		th.Stacktrace.Frames = filterAlertWrapperFrames(th.Stacktrace.Frames)
	}
	return event
}

func main() {
	sentry.Init(sentry.ClientOptions{
		Dsn:   "",
		BeforeSend: func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
			return filterAlertWrapper(event)
		},
	})
}

We might think about FramesProcessor or some similar option that'd let you write basically just that:
if strings.Contains(frame.Module, "alertWrapper") {
		continue
}
filteredFrames = append(filteredFrames, frame)

and it'd still work, but till now, it's still possible with just a few more lines of code.
Cheers!


Updated asfs.md with the correction of the casing

Corrected the casing in the "Solution Deployment" section from ACtive Directory to Active Directory.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference-architectures/identity/adfs.md
:white_check_mark:Succeeded
View

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

Thanks! 😸


WMS ID: 6181 - Updated for Langauge Service 2.0

WMS ID: 6181
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[x] All filenames are lower case (including folders, images, files, etc.)
[x] Filenames are descriptive
[x] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[x] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[x] Image references in markdown contain an alternate text

hi @arabellayao @anooshapilli I have checked again for upper case file names and ensured all the file names are in lower case. Also updated the links with PAR links you shared. Are there any file names I'm missing? please let me know.
I'm contacting the earlier authors to add me and Sahil into the list.

hi @arabellayao @anooshapilli  file names are changed to lower case and I have been added to authors list. Please let me know if you need anything more.

Hi Arabella,
Thank you. Below filenames are all fixed now. Please let us know if you anything more for approving the PR.
--
Pratap
Product Manager, Language Services
Oracle Health and AI Services
From: Arabella Yao @.>
Date: Tuesday, 25 October 2022 at 11:19 PM
To: oracle-livelabs/analytics-ai @.>
Cc: Raja Pratap Kondamari @.>, Author @.>
Subject: [External] : Re: [oracle-livelabs/analytics-ai] WMS ID: 6181 - Updated for Langauge Service 2.0 (PR #75)
@arabellayao requested changes on this pull request.
Hi! From what I saw, the files below still have upper case letters. Could you please change them to lower case letters? Thanks!
[Screen Shot 2022-10-25 at 10 47 45 AM]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/48001060/197845574-7b73b959-598f-491e-9d17-5aa9fd6c984c.png__;!!ACWV5N9M2RV99hQ!OSBFwlq4Cfni75765YXULSEtNZvhXNvHG1_cFS8fE4NiCxGw4Nik9gZ9SCzqhgeIn1dwfSGypvpaS9TfqTCPsEmlxsfIjkSoew$
[Screen Shot 2022-10-25 at 10 48 15 AM]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/48001060/197845669-d99e4b01-ec59-47dd-a4eb-6f815b5774a7.png__;!!ACWV5N9M2RV99hQ!OSBFwlq4Cfni75765YXULSEtNZvhXNvHG1_cFS8fE4NiCxGw4Nik9gZ9SCzqhgeIn1dwfSGypvpaS9TfqTCPsEmlxse5hrNiAQ$
[Screen Shot 2022-10-25 at 10 48 29 AM]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/48001060/197845727-1aa3349c-444b-4e0d-9623-b175b4cf6b5a.png__;!!ACWV5N9M2RV99hQ!OSBFwlq4Cfni75765YXULSEtNZvhXNvHG1_cFS8fE4NiCxGw4Nik9gZ9SCzqhgeIn1dwfSGypvpaS9TfqTCPsEmlxse001-xFw$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/oracle-livelabs/analytics-ai/pull/75*pullrequestreview-1155262836__;Iw!!ACWV5N9M2RV99hQ!OSBFwlq4Cfni75765YXULSEtNZvhXNvHG1_cFS8fE4NiCxGw4Nik9gZ9SCzqhgeIn1dwfSGypvpaS9TfqTCPsEmlxscum1Hyzw$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AEGURG6DLYFE43HOXLHH65TWFAMSDANCNFSM6AAAAAARIK2GJY__;!!ACWV5N9M2RV99hQ!OSBFwlq4Cfni75765YXULSEtNZvhXNvHG1_cFS8fE4NiCxGw4Nik9gZ9SCzqhgeIn1dwfSGypvpaS9TfqTCPsEmlxsemZTqp0A$.
You are receiving this because you authored the thread.Message ID: @.***>

Hi Arabella,
This was due to sync issue with my GIT desktop. Corrected now.
--
Pratap
Product Manager, Language Services
Oracle Health and AI Services
From: Arabella Yao @.>
Date: Wednesday, 26 October 2022 at 11:58 PM
To: oracle-livelabs/analytics-ai @.>
Cc: Raja Pratap Kondamari @.>, Author @.>
Subject: [External] : Re: [oracle-livelabs/analytics-ai] WMS ID: 6181 - Updated for Langauge Service 2.0 (PR #75)
@arabellayao requested changes on this pull request.
Hi! Please change those filenames to lowercase. Thanks!
[Screen Shot 2022-10-26 at 11 27 34 AM]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/48001060/198106732-86804b87-722c-441f-977d-bc102aa6ed82.png__;!!ACWV5N9M2RV99hQ!Pk0QV6WLzmhfkvtHpY-u2aOoAxGgqAd4h7LtAdpCR37uCqtElMk_k8xMe__c1NtjChPzJ7tvXZ8iUYDGdwNlcDm_2pfNdLA8AQ$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/oracle-livelabs/analytics-ai/pull/75*pullrequestreview-1157087472__;Iw!!ACWV5N9M2RV99hQ!Pk0QV6WLzmhfkvtHpY-u2aOoAxGgqAd4h7LtAdpCR37uCqtElMk_k8xMe__c1NtjChPzJ7tvXZ8iUYDGdwNlcDm_2pchWksaqg$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AEGURGZ5YPZCW6A2VJQBB7DWFFZ3PANCNFSM6AAAAAARIK2GJY__;!!ACWV5N9M2RV99hQ!Pk0QV6WLzmhfkvtHpY-u2aOoAxGgqAd4h7LtAdpCR37uCqtElMk_k8xMe__c1NtjChPzJ7tvXZ8iUYDGdwNlcDm_2peHE9Zf1w$.
You are receiving this because you authored the thread.Message ID: @.***>


Please provide the tests files in your releases

Hi,
I'm currently packaging volatildap into Debian.
As the tests are something useful to ensure along time that a package properly works, I had to rebuild a tarball from your release one in order to include the tests directory.
Could you consider providing all the tests scripts in your next release, please? :)
Cheers!

Which tarball was missing the tests?
I'd say that:

They should be included in the .tar.gz
They must be excluded from the wheels

Including the tests & Makefile in the tarball without installing them can be tricky — but that is required, otherwise we'd get conflicts between all the projets whose tests are located in tests/ ;)

https://pypi.debian.net/volatildap/volatildap-1.1.0.tar.gz, which is a clone of the pypi.python.org tarballl.

OK, I think I see how we went into this. I'll have to fix the MANIFEST.in and adjust the setup.py accordingly.
By the way, does the Debian project provide guidelines as to "what a Python package developer should do to ease its packaging by Debian"? I'm sure such a document would be very useful for both educating Python developers and helping Debian maintainers when explaining what is required :-)
Such document could include hints on the various keywords expected in the MANIFEST.in or the setup.py, for instance.

I think the current answer is "no". But the question is legitimate, and I'm eager to try forwarding it to the python team. :)


Fixed bugs in the staff page and added improvments

Bugs Fix

I fixed a bug stopping the page to reload when an action was done on a staff (update, delete, add).
Sends an invitation email when a staff is added so that he connects.

Improvements

Stopped non admin "admin" to access the staff page.

To Do

Make sure that the back-end stops staff to change admin_role.
Brings a new staff straight away to the admin platform and not to the enterprise dashboard..

Created MNOE-106 for the TODO item


[ENHANCEMENT] Added sorting to account-contacts

Now account-contacts are sorted by last name.
Removed sorting in tab.

changes

else ack


Various fix for MacOS X 10.10, Linux and zsh

Fix DNS cache flushing for MacOS X 10.10 to 10.10.3
Fix date and sw_vers for Linux
Fix escaping for zsh

Thanks, I think this fixes #1!  :)  On which OS did you test this?

Tested on Debian Jessie and MacOS X 10.10.3

Thanks @odtvince!  :)


walletlock / unlock not working on cli

The walletpassphrase command on linux and the walletlock functions are broken.
walletpassphrase returns always "wrong password" and walletlock has no function.
at the moment there is a need for a daemon restart.
Using this commands in debug-window on qt, the functions works as expected.

There's a warning that may be related: ```
wallet.cpp: In member function ‘bool CWallet::ChangeWalletPassphrase(const SecureString&, const SecureString&)’:
wallet.cpp:121:10: warning: unused variable ‘fWasLocked’ [-Wunused-variable]
bool fWasLocked = IsLocked();


publish chart independently, incremented both chart and image versions to trigger build of both

moved chart publishing to a separate job which runs after publish image is skipped or succeeded

/lgtm


[TW#12606] Static allocation for software timers?

Are there any plans to add support for statically allocated software timers, i.e. the xTimerCreateStatic API?
Currently I'm working on something involving the micropython-esp32 project. This recently moved to static allocation when threading support was added. Static allocation works very nicely with tasks, semaphores, queues, etc. but having recently found a need for software timers I was a little surprised to find xTimerCreateStatic wasn't in ESP-IDF. I'm guessing this is something that was introduced in FreeRTOS 9, and ESP-IDF is based on 8.2?
(vTimerSetTimerID appears to be something else introduced in 9, which would also make things a little easier as one could use it to pass varying information per timer)

@waveform80 you can also use dynamic allocation with the micropython-esp32 port. If you really need static allocated timers, then feel free to back-port that from FreeRTOS 9 and submit a pull request ;-)

Static allocation of software timers has been backported in https://github.com/espressif/esp-idf/commit/c1d101dd41af4c883f6c3222a9295323e2cc51ae.


#257 Warn before setting undo keybind to ctrl-z

Description
After looking at the issue #257 I added a check when changing keybinds that the keybind being set is undo and its being changed to ctrl-z a prompt will appear asking the user to confirm the change and explaining this isn't the standard text edit undo.
Commit
feat: A confirmation prompt now appears when changing to undo keybind to ctrl-z
What's new

If the undo keybind is set to ctrl-z the user will be asked to confirm the decision by a pop up

Hello. 2.x is no longer supported. Please target dev4 branch if this change is relevant to 4.x code base.


IP addresses to open in order to run Apiary inside of firewall

Hi, I'm trying to run apiaryio client behind a corporate firewall.
Which ip addresses should be added in order to be able to run the client (I found this 4 for api.apiary.io, but just to make sure )
Also, which ports are called? Why 8080 and not 80 or 443?

@IGZnestorpina We don't have any fixed IPs. The periodic lookup/upgrade is probably the best you can do.
Port was created for debugging and is actually unused, 443 should go through—thanks for pointing that out //cc @abtris

Thank you Almad.
I hope they don't change too much :)

Not currently, but can't guarantee it :)


Updated Form to Accept Postal Codes and Province Abbreviations

Changes:

"State" and "ZIP" labels now say "State / Province" and "ZIP / Postal Code", respectively.
Removed restrictions on ZIP input field as postal/ZIP codes take multiple forms.

Closes #27

Very nice, thank you @TheArchitect4855
The ZIP validation was a hotly debated one which I was mostly for, primarily to avoid surprising the user when they finally saw their PDF. But I'm glad the community spoke up and you made this PR :+1:


[auto release] optimize logic to calculate next version

According to failed log https://dev.azure.com/azure-sdk/590cfd2a-581c-4dcb-a12e-6568ce786175/_apis/build/builds/3846367/logs/23, we need optimization.

/check-enforcer override


File new behavior

What's this PR do?
Changes logic for new files and saving files. New files are now created as blank pages and named with untitled# (with # being the next number after the highest numbered untitled file in your working directory).
Unsaved files will Save As, prompting a Save As overlay with Untitled# showing in the filename field.
Saved files will simply save to their current name.
Ctrl-S and the save button should work for both of these circumstances.
Where should the reviewer start?
npm install (to get Frylord updates)
npm run build
How should this be manually tested?
Open ChromeIDE, create a new file (with the New File button and with Ctrl-N). Write some text into the file. You shouldn't see any errors in the Dev Tools console. Save (using the Save button or Ctrl-S), should open the Save As overlay. Untitled# (#, based on file directory) should show in the filename input. Save the untitled file. Create and save a few more untitled files. Be sure the numbers are incrementing properly. Click the Save button or press Ctrl-S on a file that is already saved. It should simply save without prompting the Save As dialog.
Create a new file. Try to click away to a different file in your directory. ChromeIDE should ask you to Save As.
Try different scenarios with opening new files, saving, and navigating to be certain everything is working as expected.
What are the relevant tickets?
Closes #107

Excellent descriptions @drquinn, thank you!  Looking forward to trying out these features.

reassigned to @2fast2fourier to review since I made changes


BUG : Room ID and Username Validation Allows Whitespace Input

Describe the bug
Room ID and Username fields were allowing whitespace characters to be counted toward the minimum length requirement. This allowed users to join with only spaces in the Room ID and Username fields, bypassing the intended character validation.
Here is the demo ~
https://github.com/user-attachments/assets/488df5e8-a1be-49d2-863b-7f91f86d17a7
To Reproduce
Steps to reproduce the behavior:

Go to the room creation/joining page.
Enter a Room ID with 5 spaces and a Username with 3 spaces.
Attempt to join or create a room.
Notice that the form is submitted successfully, despite only spaces being entered.

Expected behavior
The Room ID should require at least 5 non-space characters, and the Username should require at least 3 non-space characters. Spaces should not be counted toward the character minimum for either field.
Additional context
To resolve this issue, I added a trim() function to remove leading and trailing whitespace from the Room ID and Username fields before validation, ensuring that only non-space characters are counted in the length check.

@Rudrajiii Great. Thanks for fixing it.


Add Kubernetes API GVK schema

What does this PR do?
(Please set a descriptive PR title. Use this space for additional explanations.)
First use case for this is when one resource references another one (e.g. Cluster resource has spec.infrastructureRef which references AWSCluster version v1beta1 from API group infrastructure.cluster.x-k8s.io), and that is configurable (e.g. in previous example different providers have different values, or the provider is updated to a newer version), so with this we can specify group, version and kind.
Any background context you can provide?
Working on restructuring of cluster apps. Many parts of the schema there can be reused across cluster apps and in many other places.
Are you meeting our versioning requirements?

In general, all schema modifications are done by creating a new version and new file.
Changes that can lead to breaking validation (where the payload was valid with the previous version) require a major version bump.
Non-breaking changes like additions should yield a new minor version.
Only smallest changes should be published as patch version bump, e. g. a typo fix in a title or description field.

Have you also followed these requirements?

[x] I have requested reviews from several teams.
[x] I updated CHANGELOG.md.
[x] I checked/maintained the README.md within the schema folder.

Hi there!

Question: Is GVK a term known in the community?
Can we add constraints to the string props? Ideally a regex (pattern)

To answer my own question "Is GVK a term known in the community?" I googled a bit and found some hits, but also found "GVR". Is GVR a different thing, or just an alternative name?
In general I try to avoid abbreviations in naming where possible. I'm thinking whether we could also name the schema group-version-kind.
And then I'm thinking it would be great to know that this is a Kubernetes thing, so maybe k8s-group-version-kind ?