Minimum and Max Dates on Single Date Picker

Question,
Is there a way to pass a min/max date value to the single date picker? I'd like the user to only select dates that are obviously not in the past or way in the future...
Nice plugin by the way :)
Thanks!
Andre

@andrefox333 you can pass an isOutsideRange predicate function as a prop that can return true or false if the date is valid, which would allow you to restrict which dates are selectable.

@ljharb, thanks for your reply :), I'm having a couple issues with the predicate function. If I have two input fields (startDate, endDate), I'd like my endDate input to not be able to select anything past the startDate. Very similar to how the date picker range component works.
How does the isOutsideRange function know that the days from the startDate and before are not selectable?
I figured passing in the startDate into the function and do some checking with it would be enough but it's not working as intended. What should I be passing into the isOutsideRange function?

If you want a start and end date linked like that, why not use the DateRangePicker?

Either way, you can do it with your own wrapper component around two single date pickers, and that wrapper component would know onSelect/onChange what dates had been selected.

@ljharb is right. The SingleDatePicker you're using for your end date needs to use your current start date in the logic for isOutsideRange somehow, which means you need a wrapper for both instances that would know about both the selected startDate and endDate

@andrefox333 just in case you still need it, I've submitted a PR that could solve your problem. Check it out -> #172

@simonemonetti Thank you :)


Fix unsoundness in array impl of NoPaddingBytes

As a bonus this now uses const generics to support all array sizes.

Sure, I guess it is time to use const generics. Thanks!


Fixed several issues with HttpContentDecoder

What was broken:

ContentDecoder set invalid "Content-Length" header for chunked content.
The length of the first processed chunk was set.

Decoding of FullHttpRequests put both the original content + decoded content into output.
As result, using HttpObjectAggregator before the decoder lead to errors.

Requests with "Expect: 100-continue" header were not acknowledged:
HttpContentDecoder cached the header's message until data is received,
and didn't pass it down the handler's chain.
If client expected "100 Continue" response, deadlock happened.

Changes:

Invalid "Content-Length" header is removed; handlers down the chain can either
rely on LastHttpContent message or ask HttpObjectAggregator to add the header.

FullHttpRequests are split into HttpRequest and HttpContent (decoded) parts.

Header (HttpRequest) part of request is sent down the chain as soon as it's received.

Result:
Everything is fixed, unit test is added.

AUTOMATED MESSAGE for ADMINS:Please verify and accept the pull request.To accept, say @netkins acceptTo build again, say @netkins buildTo whitelist the author, say @netkins whitelist

@netkins accept

@gariev have you signed the CLA yet ?
https://docs.google.com/forms/d/1GKuaUw10DfPzPy_XBnp3Wk_OLYnA4-Kg16wSiUkO3-A/viewform?formkey=dHBjc1YzdWhsZERUQnhlSklsbG1KT1E6MQ

@gariev - Done with first pass of review.  Thanks for the updates!

@normanmaurer: yes, I signed the CLA

@gariev - Great work! Thanks for the patch!
@normanmaurer - I'm satisfied.  I'll let you finish up in-case you have any additional comments.

@gariev - Please squash your commits and format your commit message according to http://netty.io/wiki/writing-a-commit-message.html.  See http://netty.io/wiki/developer-guide.html if you have any questions.

Scott, let me double-check: do you (netty project) squash published commits right in PR branch?
I thought that this part is "for contributors with push rights": http://netty.io/wiki/developer-guide.html, and should be done as: merge the PR from console locally, squash commits, push.
And changing published history is usually avoided: https://help.github.com/articles/about-git-rebase/
Thanks!

@gariev squash these... force commit to this branch and then we cherry-pick it as single commit to the "live branches". This way these are clean.

@gariev thanks!
Cherry-picked into 4.0 (c910dc61e38ed402a665f9f6bcf4207904b6ddf5), 4.1 (ed10513238c271a2c9b372b702dec4943b64f0d5) and master (1c6b3307becc3b0c19fdbac6a7058bd731a4db2c)


Add dashboards-reports to integTest automation

Add integration with front-end dashboards-reports and back-end reports-scheduler for the dashboards-reports plugin.

Command to run integration tests for dashboards-reports (front-end plugin):
yarn test

Prerequisites:

OpenSearch sample data (ecommerce, flights, logs) must be installed

Command to run integration tests for back-end reports-scheduler:
./gradlew integTest

Remote cluster:
./gradlew integTest -Dtests.rest.cluster=localhost:9200 -Dtests.cluster=localhost:9200

@davidcui-amzn how about secured cluster, seems like you provided test for cluster without security plugin.

For front-end dashboards-reports, we do not interact with the security dashboards plugin. For the backend reports-scheduler, the command will be
./gradlew integTest -Dtests.rest.cluster=localhost:9200 -Dtests.cluster=localhost:9200 -Dhttps=true -Duser=admin -Dpassword=admin

Resolved and reports is now in the cicd for auto integtests.
Thanks.


Direct user to information on OMRR processes on the gov website

Note: MVP task moved over from previous requirements document.
Description:
Direct user to information on OMRR processes on the MoE gov website
Definition of Ready:

[x] User role and type are identified
[x] Wireframes completed
[x] Design / Solution is accepted by Product Owner

Done in #43


"Continuous Delivery with Windows Containers and VSTS" Lab is too broken to fix with a pull request

This lab has a few problems, mostly caused by specifying the container name iiscntr1 in task 5, step 6. This means that task 5, step 16 ("You should run this a couple of times") will fail on the second and subsequent runs, as the container is started on the build agent itself and not torn down between runs - the tasks to do this are disabled in task 5, steps 7 and 8.
Task 6 will also fail, as the container name is still the same and there are no prerequisite steps to tear down the environment.
Of course, allowing the name to be assigned automatically will cause task 7 to fail due to task 5, steps 7 and 8 also failing.
Don't think I can fix this in a pull request without changing the intent of the lab exercise.

Thanks for posting, had a look at it and yeah there's some issue with this lab, we're working on updates at the moment, will probably take into tomorrow before that's complete but will post back here to let you know when its updated.
Thanks Again,
Eamonn

Hi,
Just FYI that am not forgetting this issue, have been looking at another issue which arose but will get back into this now and will let you know as soon as I have a resolution.
Thanks,
Eamonn

Hi Again,
Sorry for the delay getting back on this, had what looked like a finished update but ran into some other parts if it needing changing.  I will have an update this week on it and let you know when its done.
Thanks Again,
Eamonn

Hi,
Apologies for the long delay getting back on this. The lab has finally been updated Continuous Delivery with Windows Containers and Azure Devops. A good few changes have been made to the original lab to overcome the issues so it should be up and running now and working as expected.
Thanks,
Eamonn


Guest access tokens

@git-marijus what do you think about the 100% width default for images in #doco-content? I'll let you merge this if that's okay with you.

what do you think about the 100% width default for images in #doco-content?

I think we should provide images in a size that they don't need stretching to 100% where neccesary since stretched images don't look so good. In some cases it might be useful to have images smaller than full width.
Merging anyway... We can easily revert this later...

It still allows you to specify a fixed with like [img=300x300] if you want. It would be desirable to allow percentages in addition to pixel size, since that is typically more useful.


Create a view to edit Stores where the product is sold

What

Important: This issue is blocked on having a server-side taxonomy for Stores
Create a view to edit Stores where the product is sold

Mockup

Part of

#503

I'll assume fixed, although the proposed UI was discarded


Fix uneven chunks with spectral_interpolate and dask

This fixes #815.
Spectral interpolation changes the output cube dimensions, so DaskSpectralCube.spectral_interpolation has a direct call
to the map_blocks function where we specify the output chunk size. If the array shape is not an exact multiple of the chunk size, a tuple of chunk sizes needs to be given to map_blocks to reflect that same chunks will be smaller or otherwise vary, and that information is needed to inform file writing routines (zarr, to FITS) before they create the output files. This causes the mismatched shape errors in #815.
In the original cube, this is stored in the dask array as cube._data.chunks, and we're only changing the 0th spectral size for spectral interpolation.
This may come up in other places for routines that change the original shape of the cube on output. I think spectral_interpolate is the only place where this currently needs to be handled here (downsampling uses a dask built in).

Codecov Report

Merging #816 (fb2ccb1) into master (7d0b9c7) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #816      +/-   ##
==========================================
+ Coverage   77.94%   77.95%   +0.01%
==========================================
  Files          24       24
  Lines        5853     5856       +3
==========================================
+ Hits         4562     4565       +3
  Misses       1291     1291

Impacted Files
Coverage Δ

spectral_cube/dask_spectral_cube.py
85.01% <100.00%> (+0.07%)
:arrow_up:

Continue to review full report at Codecov.

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

#813 should be merged first to fix the CASA tests


404-ed model still ended up in wllama_cache?

Because I made a typo in the URL of a local model file I noticed something strange. It seems that invalid URL ended up in the wllama_cache anyway.
I checked to see if my code was perhaps adding the URL to the cache manually, but didn't think so, and also didn't find that.
The result is that my projects thinks the model is loaded, but then Wllama crashes when loading it.
Perhaps it cached the 404 page?

(currently my code tries to recognise an event object, and see that as an indication that the (down)load process failed, and not the actual loading of the model itself. See also: https://github.com/ngxson/wllama/issues/56

Resolved by #59 . Any invalid URL (which does not have status code 200) will be rejected by fetch API.


Set bucket CORS parameters on S3 bucket creation

On creating a new S3 bucket, the gaia hub should probably set a permissive CORS property for the bucket, using:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property
This is so that apps can read from that bucket directly if necessary.

What would be a good policy?  Can you list an example here?

I think this:
     AllowedMethods: [
        "GET",
        "HEAD"
     ],
     AllowedOrigins: [
        "*"
     ],


remove compiler_stresstest benchmark

it turns out that this wasn't a great GC benchmark and is prone to breaking.

any objections to merging?

This benchmark does seem temperamental, so I'm OK with it going away, but I
would like some way to include compilation in our gc test suites in the
future.
On Fri, Jun 24, 2022 at 10:51 AM Oscar Smith @.***>
wrote:

it turns out that this wasn't a great GC benchmark and is prone to
breaking.
You can view, comment on, or merge this pull request online at:
https://github.com/JuliaCI/GCBenchmarks/pull/28
Commit Summary

3dd82f0
https://github.com/JuliaCI/GCBenchmarks/pull/28/commits/3dd82f041c30bf990329abe0aad7e7338321f5f7
remove compiler_stresstest benchmark

File Changes
(3 files https://github.com/JuliaCI/GCBenchmarks/pull/28/files)

D benches/compiler/Manifest.toml
https://github.com/JuliaCI/GCBenchmarks/pull/28/files#diff-a022f87364e94410ecfe9c625da2f3bdda36f342a637846554aa806810728c94
(66)
D benches/compiler/Project.toml
https://github.com/JuliaCI/GCBenchmarks/pull/28/files#diff-83699a925600f4b5c77f4c53e69956aa597aa580a232b7bffd849e3388c3bffa
(2)
D benches/compiler/compiler_stresstest.jl
https://github.com/JuliaCI/GCBenchmarks/pull/28/files#diff-f103d71141965a92c21f969b5a4d35782357e7615bfa843221e5f9a8c8b62a00
(42)

Patch Links:

https://github.com/JuliaCI/GCBenchmarks/pull/28.patch
https://github.com/JuliaCI/GCBenchmarks/pull/28.diff

—
Reply to this email directly, view it on GitHub
https://github.com/JuliaCI/GCBenchmarks/pull/28, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE3CLBAYELNXN4Z3YETVZLTVQXDPVANCNFSM5ZYDFCEA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


[docs] Simplify checkbox examples

Simplify onChange callbacks of the Checkbox component examples.

[x] I have followed (at least) the PR section of the contributing guide.

@tacigar Nice work, thanks!

Could it be an approach we can scale to more demos? :)


Add more default names

Add more default names to grubs

I had japes generate a bunch more, see https://github.com/apetavern/grubs/commit/b1bfea841a20469eda6560f02978926144d8280f

Fixed in https://github.com/apetavern/grubs/commit/b1bfea841a20469eda6560f02978926144d8280f


Update the way we do sampling without replacement

Description and related tickets, documents
due to the fact that SparkSQL does not allow rand() to accept a negative seed value in order by clause
Reviewers: @hai-adatao
Breaking changes & backward compatible issues
How to test
Describe how this PR is tested. In case manual testing is required, describe how to do so.
PR Progress
Make sure all checkboxes below are checked before merged

[x] Branch is in format prefix/description (see this)
[ ] Merge check has no conflicts. PR checks passed.
[ ] Code review is done.

Change-Id: I34ebed02c4ff615aae99a30cd68c3e1104ee3dc0

I don't really understand the fix, why this involves a sub query? Does it affect the performance of sample?  Can we just disallow negative seed or deprecate it and workaround by shifting / getting abs value instead and create ticket for BA to migrate it?
On another thought, what does this seed do? Does it guarantee that we will get the same result if we use the same seed? If not can we just get its abs value instead?

You cannot run this in SparkSQL "select * from table order by rand(-123)" while these sql work

select * from table order by rand(123)
select * from (select *, rand(-123) as rnd from table) t order by rnd
The 2nd query does not affect the performance because Spark will generate just the same number of stages like the one with no subquery.

We're fixing that by introducing a subquery, it will affect performance right? Also, my opinion is negative seed doesn't make sense, so we can just:

use abs(seed) before using it now, and create a ticket for BA to migrate negative seed
once BA is done, add error message to verify negative seed
or we can just disallow negative seed in DDF now, and do abs() stuff in client

If negative seed really makes sense, then I think do an if check and only on sub query when seed is negative is better

I did a quick benchmark and the subquery does increase the running time. So I refactor to handle the negative seed case separately. Performing an abs() is not a good one, I think, though it is not that critical.


prefer files.pythonhosted.org over pypi.python.org

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same change?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew tests with your changes locally?

Can you provide a bit more context for this? Thanks!

https://github.com/Homebrew/homebrew-core/pull/2003

Have you added an explanation of what your changes do and why you'd like us to include them?

Personally, I'd hope that this was also done in PRs by maintainers. (Ticking the boxes from the PR template that actually apply would also be a nice touch.) Right now the commit message and PR only reveal what was changed, but completely leaves out the why. To be honest, that's still not clear to me even after reading the linked PR …

I'm not sure on the need to do this, to be honest.
homebrew-pypi-poet will change them when used, and a lot of formula authors use that so it should happen fairly naturally, but otherwise I'm not massively keen for brew audit to start kicking people to change URLs for what as far as I'm aware was a cosmetic change.
If we're that bothered by it I'd rather someone just run a quick sed through the core.

Good thought but I don't think this is the best way to address this. Any existing PyPI URLs are fine; if we decide we need to change them we should do it automatically instead of piecemeal.

We can change all existing to the new ones. I assumed based on Homebrew/homebrew-core#2003 that this is what we want to do. I already started to change the url in new PRs.  So what do we want to do with it? Close this or carry on and change all url in core to the new ones and merge this?

👍 to changing all existing ones without a PR (i.e. committing to master). Let's make this check only for audit --strict

Just to be clear, the difference is aesthetic, not functional; I don't think anything needs to change right now in any existing formula.

OK, so any objections for adding this in strict?

I don't think this check affects the correctness of formulas. I don't mind if formulas use either or both patterns; if you do, this change shouldn't hurt anything, so I don't object.

I don't think this merits audit code particularly, given there's nothing "wrong" with the existing URLs. It's not like it's redirecting from plaintext to SSL/TLS & we can stop that tiny insecure step, or it's using a protocol that is likely to be firewalled, or using a URL that could stop working at some point, but my objection isn't a hugely strong one.

I don't think this merits audit code particularly, given there's nothing "wrong" with the existing URLs.

We do get pedantic about other things when there's nothing "wrong" so I'm 👍 to this; it makes it easier to turn our style preferences into code than internalised knowledge.

I'm also 👍 , if we are changing it ourselves to this, then it makes sense. At least in strict for now.

@Homebrew/maintainers final decision on this, let's not make this hang around.

@nijikon Can you 🚢 this? Thanks!

Good thought but I don't think this is the best way to address this. Any existing PyPI URLs are fine; if we decide we need to change them we should do it automatically instead of piecemeal.

Let's make this check only for audit --strict

Would like at least these two things done if we merge here, otherwise this is going to blow up a lot in core.

Would like at least these two things done if we merge here, otherwise this is going to blow up a lot in core.

👍

@nijikon Ping on this.


Chromedriver does not work under windows (includes fix)

WebDriverException
"ChromeDriver executable needs to be available in the path.
Please download from http://code.google.com/p/selenium/downloads/list
and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
This happens even when chromedriver is in path. This occurs because selenium is calling subprocess.Popen which splinter monkeypatches (bad idea imo).
This is done in splinter\driver\webdriver_init_.py line ~39
    # selenium is such a verbose guy let's make it open the
    # browser without showing all the meaningless output
    def MyPopen(*args, **kw):
        kw['stdout'] = TemporaryFile()
        kw['stderr'] = TemporaryFile()
        kw['close_fds'] = True
        return self.old_popen(*args, **kw)

And if you read from http://docs.python.org/library/subprocess.html
"Note that on Windows, you cannot set close_fds to true and also redirect the standard handles by setting stdin, stdout or stderr."
Issue can be resolved by commenting out "kw['close_fds'] = True"

Could you please try the windows branch? Using pip:
$ [sudo] pip install git://github.com/cobrateam/splinter.git@windows


ICSHeight in the response of queries may be no correct

In the cosmos implementation fo query_packet_commitments and query_packet_acknowledgements, the ICSHeight is part of the reponse.
However, in the substrate implementation of query_packet_commitments and query_packet_acknowledgements, the ICSHeight is retrieved separately. To investigate the impact of the different approach.
Another possible issue is that unlike cosmos, the parameter port_id & channel_id is not used in substrate's query_packet_commitments and query_packet_acknowledgements, which may cause the response to be exploded.

https://github.com/informalsystems/ibc-rs/issues/1622


Add Metasploit nightly

Checklist

[x] The commit message includes the cask’s name and version.
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Additionally, when adding a new cask:

[x] Checked there are no open pull requests for the same cask.
[x] Checked there are no closed issues where that cask was already refused.
[x] When naming the cask, followed the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.

Closing for lack of reply. If you still wish to include this, please resubmit with the requested fixes.


Vs code passes parameters containing semicolons to the program

`
int main(int argc, char *argv[]) {
for (int i = 0; i < argc; i++)
{
    printf("%s\n", argv[i]);
}

return 0;

}`
set args:["1;3"]
i hope display
a.out
1;3
but  result is
a.out
1
my system is ubuntu 16.04

It is very unlikely that VSCode has anything to do with that.
Ho do you run the program?

I need to input arguments that is a string with semicolons, like"address;topic".
When the arguments comes from ubuntu terminal command,  the argument is "address;topic"  exactly  what I want.
But when they are comes from launch.json which is needed in vscode, all the characters behind the semicolon is ignored. It becomes to "address" without ";topic".
How to set the "args"  parameter in launch.json to get strings input with semicolons?

I need to input arguments that is a string with semicolons, like"address;topic".
When the arguments comes from ubuntu terminal command, the argument is "address;topic" exactly what I want.
But when they are comes from launch.json which is needed in vscode, all the characters behind the semicolon is ignored. It becomes to "address" without ";topic".
How to set the "args" parameter in launch.json to get strings input with semicolons?
@aeschli

Having one "args": [ "address;topic"] is IMO the right thing to do.
Can you paste the full configuration that you have in launch.json? I'd like to see the type of the configuration.

Hi!@aeschli
Thanks for your reply.
Bellow is my semicolons_test.c
#include <stdio.h>

int main(int argc, char *argv[])
{
    for (int i=0;i<argc;i++)
    {
        printf("%s\n",argv[i]);
    }
    return 0;
}

And launch.json
"version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/semicolons-test",
            "args": ["address;topic"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "M"
        }
    ]

output in Vscode
/home/dreamdeck/Desktop/test/semicolons-test
address

input and output in Linux terminal
$ gcc -o semicolons-test semicolons_test.c
$ ./semicolons-test "address;topic"
./semicolons-test
address;topic

Thanks @MolianWH !
Assigning to @weinand to decide whether this is a cpp issue or not.

We are now properly escaping ';' for unix shells.


[Bugfix] UI BTC Address cutoff in PSBTAddressDetailsScreen screen

Description
"Will Send" (PSBTAddressDetailsScreen) screen in PSBT flow of receive address has the bottom address text cutoff (bug not in 0.7.0). I believe this issue was introduced with the conversion of Pillow functions getbbox from getsize (https://github.com/SeedSigner/seedsigner/pull/485). This is the best solution I can find for this issue. Happy to accept other recommendation from @kdmukai 😀.
PSBTAddressDetailsView Screen/View

0.7.0
Current Dev Branch
PR Applied

PSBTAddressDetailsView Screen/View

0.7.0
Current Dev Branch
PR Applied

The addition of getmetrics is to get the height from the descent and add the height calculated of the font.

This pull request is categorized as a:

[ ] New feature
[x] Bug fix
[ ] Code refactor
[ ] Documentation
[ ] Other

Checklist

[x] I’ve run pytest and made sure all unit tests pass before sumbitting the PR

If you modified or added functionality/workflow, did you add new unit tests?

[ ] No, I’m a fool
[ ] Yes
[x] N/A

I have tested this PR on the following platforms/os:

[x] Raspberry Pi OS Manual Build
[ ] SeedSigner OS on a Pi0/Pi0W board
[ ] Other

Note: Keep your changes limited in scope; if you uncover other issues or improvements along the way, ideally submit those as a separate PR. The more complicated the PR the harder to review, test, and merge.

I will try to get hands-on with this soon, but note to others / to self:
First guess is that it would be better to just give getbbox("Q") an anchor. We typically use "ls" (left, baseline) in order to ignore pixels below baseline but capture the full height of taller characters. This lets us create consistent line spacing for multi-line text (consistent baseline spacing).
The only "gotchas" are making sure that the line spacing has enough room to allow for the pixels below the baseline to not intrude on the line below them and to make sure pixels below the baseline are included in the Component's height reporting (which may be a separate / the real bug here) so they aren't chopped off.

As of a187190
I tried both before (with current dev as it is today) and with this pr and confirm the prior clipping at bottom of PSBT Will Send screen has been corrected by this pr.  As well, a quick review of screenshots generated on this pr don't show anything alarming (that wasn't already known before, ie: the word "change" clipped on right side of psbt math for larger sats values.)

Suggested changes here:
https://github.com/SeedSigner/seedsigner/commit/2089f482ca4dfdff8d8b35232814c9966cb91539


Plugins not loading

Hi Kevin!
Thank you very much for the guide! Everything works beautifully, but abaqus is not loading the standard plugins at startup. There is an error message for each plugin, which is the same:
File "/opt/SIMULIA/CAE/2018/linux_a64/code/python2.7/lib/abaqus_plugins/rsg/rsg_plugin": TypeError: unicode() argument 2 must be string, not None
Did you came across this Problem or do you have an idea how to solve this? I am using Xubuntu 18.04.
Thank you!

Hi again. Problem solved. While installing i had to change the System language to "english". That somehow broke the python enviroment. I re-installed the OS this time choosing english as default language. I dont know exactly why, but now it's working.

Great, and thanks for posting the apparent solution. Feel free to amend my instructions if you feel they need updating.

Hi Kevin,
I am facing the same issue in Abaqus 2021. I haven't figured out the fix yet. Could you help?
File "/usr/SIMULIA/EstProducts/2023/linux_a64/code/python2.7/lib/abaqus_plugins/amplitudePlotter/amplitudeToolsForm_plugin":
TypeError: unicode() argument 2 must be string, not None


Docker instructions for Mac users

Hi @clelange,
I had a few issues when trying to open any graphic element in the docker standalone version on MacOS. I realised that in order to run properly on Mac, one should first set the DISPLAY variable in the docker run. Would it be possible to update the docker run command to:
docker run --hostname=97e12d678fa2 --user=cmsusr --env=PYTHONPATH=/usr/local/venv/lib::/code/HiggsAnalysis/CombinedLimit/build/lib/python --env=HOME=/home/cmsusr --env=CMSSW_BASE=/code --env=PATH=/usr/local/venv/bin:/usr/local/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin:/code/HiggsAnalysis/CombinedLimit/build/bin --env=LD_LIBRARY_PATH=/usr/local/venv/lib:/usr/local/venv/lib64:/usr/local/venv/lib:/usr/local/lib:/code/HiggsAnalysis/CombinedLimit/build/lib --env=ROOTSYS=/usr/local/venv --env=CLING_STANDARD_PCH=none --env=USER=cmsusr --env=GEOMETRY=1920x1080 --env=DISPLAY=host.docker.internal:0 --env=CC=/usr/local/venv/bin/gcc --env=CXX=/usr/local/venv/bin/g++ --env=GSL_ROOT_DIR=/usr/local/venv --workdir=/code --restart=no<EMAIL_ADDRESS>--label='maintainer.name=Clemens Lange' --runtime=runc -t -d gitlab-registry.cern.ch/cms-cloud/combine-standalone:latest
Afaict, it should not create problems to windows/linux users (although, I couldn't test it). Maybe it would be safer to maintain 2 different run commands?
Then we should instruct Mac users to also run sudo xhost +loclahost on their machines (see: https://gist.github.com/paul-krohn/e45f96181b1cf5e536325d1bdee6c949)

Hi @giacomoortona -- thanks for reporting this issue. While X windows access is possible, we've observed that it's easier for CMS open data users to use VNC instead. Could you try if the instructions at https://gitlab.cern.ch/cms-cloud/root-vnc/-/blob/master/README.md?ref_type=heads work for you?
I'll look into updating the image but since I'm travelling this and next week it might take a bit longer. It should not break Linux/Windows but might break VNC.

Hi @clelange, Thank you for your reply.
Maybe it's just my very limited docker knowledge, but it seems to me that there is no VNC server coupled to the combine docker image, am I wrong? In any case this is not urgent, it can definitively wait until you come back.
Thank you,
Giacomo

The new (slim) container doesn't include VNC anymore. I can look into adding it though, making the necessary fixes pointed out by @giacomoortona

The new (slim) container doesn't include VNC anymore. I can look into adding it though, making the necessary fixes pointed out by @giacomoortona

Hi @clelange, afaict, adding the Display environment variable + xhost should be working on Mac, KDE and maybe elsewhere. Although for reasons I can't yet understand, sometimes container created with my suggested run command get stuck after "docker start". They do work if one uses "docker exec" instead, but you might want to have a look at my suggestion. Maybe there something silly in my command (I tried figuring it out, but with no success so far).


Unsupported nuspec attribute: exclude="Build,Analyzers"

Type (choose one):

Bug

NPE version: <IP_ADDRESS>
Installed from: ClickOnce
Opening a .nupkg created with VS 2017 fails with:
---------------------------
NuGet Package Explorer
---------------------------
The 'exclude' attribute is not declared.
---------------------------
OK
---------------------------

The .nupkg was created in VS 2017 RC4. The nuspec contains the exclude attributes like this:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>StructuredLogger</id>
    <version>1.0.110</version>
    <authors>StructuredLogger</authors>
    <owners>StructuredLogger</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package Description</description>
    <dependencies>
      <group targetFramework=".NETStandard1.5">
        <dependency id="Microsoft.Build.Utilities.Core" version="15.1.0-preview-000523-01" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Build.Tasks.Core" version="15.1.0-preview-000523-01" exclude="Build,Analyzers" />
        <dependency id="NETStandard.Library" version="1.6.0" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Build" version="15.1.0-preview-000523-01" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Build.Framework" version="15.1.0-preview-000523-01" exclude="Build,Analyzers" />
      </group>
      <group targetFramework=".NETFramework4.6">
        <dependency id="Microsoft.Build.Utilities.Core" version="14.3.0" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Build.Tasks.Core" version="14.3.0" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Build" version="14.3.0" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Build.Framework" version="14.3.0" exclude="Build,Analyzers" />
      </group>
    </dependencies>
  </metadata>
</package>

Sample .nupkg (rename from .zip to .nupkg):
StructuredLogger.1.0.110.zip

And here's the spec for the new exclude attribute on dependencies:
https://github.com/NuGet/Home/wiki/[Spec]-Managing-dependency-package-assets

yes this is not implemented yet.
Any help would be great!

@KirillOsenkov Can you try the latest version? 3.21 should work with these. Recommendation is the Store version :)

Works!!! Awesome awesome. Thank you!


db dump fails with "Network is unreachable" error message

Describe the bug
I have been attempting to use the supabase db dump command to records some changes to my schema that I made within the Supabase web UI, but every time I run it I get the following error message (I altered the IPv6 address in the output):
pg_dump: error: connection to server at "db.MY_PROJECT_REFERENCE_ID.supabase.co" (2600:1f18:2e13:9d02:9512:fb9:1234:abcd), port 5432 failed: Network is unreachable
        Is the server running on that host and accepting TCP/IP connections?

It seems that I am not the only one encountering a similar issues as I found the following recent complaint via the Supabase subreddit.
To Reproduce
Steps to reproduce the behavior:

From a terminal run sudo supabase db dump --schema public -f path/to/output.sql
Provide the correct admin and DB password at the prompts
Observe the error message:

pg_dump: error: connection to server at "db.MY_PROJECT_REFERENCE_ID.supabase.co" (2600:1f18:2e13:9d02:9512:fb9:1234:abcd), port 5432 failed: Network is unreachable
        Is the server running on that host and accepting TCP/IP connections?

Expected behavior
The DB schema is written to the specified file.
System information
Rerun the failing command with --create-ticket flag (preferred).

Ticket ID: ce9a7284cf6548a1a36423a23f31858b
OS: Ubuntu
Version of CLI: v1.142.2
Versions of services:

        SERVICE IMAGE      │        LOCAL         │  LINKED
 ─────────────────────────┼──────────────────────┼───────────
   supabase/postgres      │ <IP_ADDRESS>           │ <IP_ADDRESS>
   supabase/gotrue        │ v2.132.3             │ v2.132.3
   postgrest/postgrest    │ v12.0.1              │ v12.0.2
   supabase/realtime      │ v2.25.50             │ -
   supabase/storage-api   │ v0.46.4              │ v0.48.1
   supabase/edge-runtime  │ v1.33.5              │ -
   supabase/studio        │ 20240101-8e4a094     │ -
   supabase/postgres-meta │ v0.75.0              │ -
   supabase/logflare      │ 1.4.0                │ -
   bitnami/pgbouncer      │ 1.20.1-debian-11-r39 │ -
   darthsim/imgproxy      │ v3.8.0               │ -

Additional context
This is the first time I have encountered issues running this command. It worked for me previously without issues many times.  In order to attempt to resolve the issue I updated my CLI version from 1.91.3 to 1.142.2, but the error was present across versions. Is the issue possibly related to the IPv6 migration?

Hello, have you tried relinking your project before db dump? CLI fetches the pooler url after linking successfully so that subsequent commands can connect via IPv4.

Ah, thank you! I just tried that and now I am able to use the CLI properly again. Thanks for the help.


Should DllGetActivationFactory be omitted?

I thought the DllGetActivationFactory export was only for activating WinRT objects and not needed just to expose a COM object. Is that understanding accurate? If so, should the DllGetActivationFactory function & export be omitted from this doc page?

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

ID: 5ff38587-44d4-291e-92f2-1835bae646b2
Version Independent ID: d03537dc-cad6-9888-dcc7-6881c00a479c
Content: How to: Create a Classic COM Component Using WRL
Content Source: docs/cppcx/wrl/how-to-create-a-classic-com-component-using-wrl.md
Product: visual-cpp
Technology: cpp-cx
GitHub Login: @corob-msft
Microsoft Alias: corob

@davidmatson
Interesting question. Since the entry point is guarded by a build flag for classic COM components, it will only appear as an export if you're not building as a plain old COM component. And if you're building the component for WinRT, then you'll need it. In other words, it's not wrong, though it could be distracting given the context. Since we're looking at long-deprecated WRL content that's been available as-is for a decade, I'm disinclined to change it.


ARC MetaWare newlib support

Is your enhancement proposal related to a problem? Please describe.
Support for the MetaWare toolchain has been added in v2.4, but newlib isn't supported yet.
Describe the solution you'd like
Use newlib with MetaWare toolchain.
Additional context
This relates to adding MetaWare C++ support (#29918), as tests depend on newlib.

Hi @ruuddw, is this one still relevant? I have an impression that we need picolibc these days, not newlib.


Create a pull request template

I have prepared basic guidelines for our PR template. Please review and let me know your comments.

@sharma-shruti , I do have an advice regarding the branch naming convention - please use the feature / chore / fix etc for the branch name just like the PR message.


Crash on db login free(login)

Hi,
I am getting crash on dbloginfree(login) in connectionSuccess method of SQLClient class. Can anyone please help me
Thanks

Please try the 1.0.0 version, just pushed to master. Lots of fixes there.


dangerouslySetRawStyles for different platforms

dangerouslySetRawStyles({
  __styles: {
    web: {},
    native: {}
  }
})

?

Makes sense.


Deprecate coord_flip! as a public function

Doesn't make sense, given that plots render so quickly. Just re-running function with keyword horiztonal = true where available so much more explicit.

Thinking this isn't so much "deprecating" as it is not exporting it.

Took it out of public documentation, so assuming user base isn't that big right now, shouldn't have spread very far


compat with scenario 5

branch to show @sed-i how to fix scenario 5 compat

flaky itests not this PR's fault, I vote to ignore and fix somewhere else


diffview.nvim window gets focused

Resurrecting #42, looks like this is still happening. Have tried both with {excluded_filetypes = {"DiffviewFiles"}} and without, but it keeps looking like this:

Weirdly though, if I navigate to the other windows, then back to the diff view, it looks more normal:

I'm wondering if diffview changes its filetype later or something? Would explain why focus.nvim expands it initially then doesn't later. It's just a random guess, and I don't have the knowledge to figure out if it's right. Let me know if there's anything else that would be useful to know.
Also, awesome project! Thank you 🙏

Me too

Hmm, okay. No problem! I will get around to this ASAP. I have been extremely busy lately so I do appreciate your patience :)
Thank you so much for the support and I am glad you have found Focus to be of use to you!

The only bug preventing me from using Focus. Sad, because both Focus and Diffview are awesome!
I can try to help debugging if you give me some instructions @beauwilliams

Closing as we are now discussing similar problem here https://github.com/beauwilliams/focus.nvim/issues/82
Relating to finding a way to make this plugin compatible for a wide range of plugins. This might require a rethink of how focus works.


Extension api v2

As we discussed in irc the current api is very low level. This pr makes the api available on a higher level very similar to feross' bittorrent-protocol. I have created an example extension here. What are your thoughts on this?

I like this higher-level extension idea and API; I think this could make it easier for people to extend hypercore. I don't have a strong opinion on whether this is the right way to implement this. For example, I could imagine that the higher-level extension API might be implemented in a separate package that depends on hypercore. I think that decision really depends on the tradeoff between maintaining simplicity in hypercore vs. providing a convenient API to extension authors.
Also, it looks like this needs to be rebased.

I've tweaked the low-level api a bit. See the docs here, https://github.com/mafintosh/hypercore#extension-api - I agree with @paulkernfeld's comment. Gonna think about this for a bit.

You could write he-chat like this atm actually using the current extension api
function hechat (core) {
  core.use('he-chat')
  // .. do stuff
  return {
    broadcast: function (message) {
      for (var i = 0; i < peers.length; i++) {
        peers[i].send('he-chat', message)
      }
    }
  }
}

That might be even more flexible

I think that decision really depends on the tradeoff between maintaining simplicity in hypercore vs. providing a convenient API to extension authors.

@paulkernfeld yeah i agree. I think that being able to develop extensions in external modules would make the api more convenient though. @mafintosh i like your enhancements to the pr it makes it much simpler. I had no idea you could do that with the current codebase, looks great to me as long as you can develop it in an external module. How does the broadcast function get access to the peers?

@piedshag good point. what if i added a core.peers array with all the current peers?

@mafintosh yeah that would be great. It would make the api a lot more functional at a higher level. I think you can already access core.swarm.peers but core.peers would be more convenient

okay so here is my proposal. we add core.peers and `on('peer', peer) and encourage the following pattern for extensions
function broadcastExtension (core) {
  var ext = new events.EventEmitter()

  core.use('broadcast')
  core.on('peer', function (peer) { // will be emitted when a peer stream is created
    peer.on('broadcast', function (message) {
      ext.emit('broadcast', message)
    })
  })

  ext.broadcast = function (m) {
    core.peers.forEach(function (peer) {
      peer.send('broadcast', m)
    })
  }

  return ext
}

thoughts?

@mafintosh yup sounds good. I think the extension should be encouraged to check that the peer supports the extension before broadcasting, like so.
function broadcastExtension (core) {
  var ext = new events.EventEmitter()

  core.use('broadcast')
  core.on('peer', function (peer) { // will be emitted when a peer stream is handshaked
    peer.on('broadcast', function (message) {
      ext.emit('broadcast', message)
    })
  })

  ext.broadcast = function (m) {
    core.peers.forEach(function (peer) {
      if (!peer.remoteSupports('broadcast')) return
      peer.send('broadcast', m)
    })
  }

  return ext
}

@piedshag yep. the .send api discards unsupported messages though

@mafintosh ohh ok lol. not to worry then

closing this since we agree on the o/ apprach


Process 'cloud_controller_ng'   not monitored

Hello - i am trying to install CF on RHEL using cf_nise_installer and most of the components show "running" except these:
Process 'cloud_controller_ng'       not monitored
Process 'cloud_controller_worker_local_1' not monitored
Process 'cloud_controller_worker_local_2' not monitored
Process 'nginx_cc'                  not monitored
Process 'cloud_controller_worker_1' Does not exist
Process 'cloud_controller_clock'    Does not exist
I tried to manually execute:
"/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/bin/console /var/vcap/jobs/cloud_controller_clock/config/cloud_controller_ng.yml"
But got this error:
/======================================================/
(0.000105s) SET standard_conforming_strings = ON
(0.000040s) SET client_min_messages = 'WARNING'
(0.000024s) SET DateStyle = 'ISO'
(0.000378s) SELECT NULL AS "nil" FROM "schema_migrations" LIMIT 1
(0.000050s) SELECT * FROM "schema_migrations" LIMIT 1
(0.000244s) SELECT "filename" FROM "schema_migrations" ORDER BY "filename"
PG::UndefinedTable: ERROR:  relation "services" does not exist
LINE 1: ..."."attnum" > 0) AND ("pg_class"."oid" = CAST(CAST('"services...
^: SELECT "pg_attribute"."attname" AS "name", CAST("pg_attribute"."atttypid" AS integer) AS "oid", CAST("basetype"."oid" AS integer) AS "base_oid", format_type("basetype"."oid", "pg_type"."typtypmod") AS "db_base_type", format_type("pg_type"."oid", "pg_attribute"."atttypmod") AS "db_type", pg_get_expr("pg_attrdef"."adbin", "pg_class"."oid") AS "default", NOT "pg_attribute"."attnotnull" AS "allow_null", COALESCE(("pg_attribute"."attnum" = ANY("pg_index"."indkey")), false) AS "primary_key" FROM "pg_class" INNER JOIN "pg_attribute" ON ("pg_attribute"."attrelid" = "pg_class"."oid") INNER JOIN "pg_type" ON ("pg_type"."oid" = "pg_attribute"."atttypid") LEFT OUTER JOIN "pg_type" AS "basetype" ON ("basetype"."oid" = "pg_type"."typbasetype") LEFT OUTER JOIN "pg_attrdef" ON (("pg_attrdef"."adrelid" = "pg_class"."oid") AND ("pg_attrdef"."adnum" = "pg_attribute"."attnum")) LEFT OUTER JOIN "pg_index" ON (("pg_index"."indrelid" = "pg_class"."oid") AND ("pg_index"."indisprimary" IS TRUE)) WHERE (("pg_attribute"."attisdropped" IS FALSE) AND ("pg_attribute"."attnum" > 0) AND ("pg_class"."oid" = CAST(CAST('"services"' AS regclass) AS oid))) ORDER BY "pg_attribute"."attnum"
PG::UndefinedTable: ERROR:  relation "services" does not exist
LINE 1: SELECT * FROM "services" LIMIT 1
^: SELECT * FROM "services" LIMIT 1
/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/2.1.0/gems/sequel-4.21.0/lib/sequel/extensions/migration.rb:368:in check_current': migrator is not current (Sequel::Migrator::NotCurrentError)         from /var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib/cloud_controller/db_migrator.rb:29:in check_migrations!'
from /var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib/cloud_controller/db.rb:52:in load_models'         from /var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib/cloud_controller/console.rb:28:in <top (required)>'
from /var/vcap/packages/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in require'         from /var/vcap/packages/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in require'
from /var/vcap/packages/cloud_controller_ng/cloud_controller_ng/bin/console:6:in `'
/======================================================/
Please let me know if you spot anything obvious here - seems like "services" entry in not in a table.
Thanks.

Unfortunately, RHEL is not supported at this moment.

Thanks Yudai.  I understand this is my own battle to fight but would you know if there is a way to recreate all the tables in Postgres (apart form reinstalling everything). Thanks.


[SPARK-43299][SS][CONNECT] Convert StreamingQueryException in Scala Client

What changes were proposed in this pull request?

Convert StreamingQueryException in Scala Client
Move StreamingQueryException to common/utils module
Implement (message, cause) constructor and getMessage() for StreamingQueryException
Get StreamingQueryException in StreamingQuery.exception by throw instead of GRPC response

Why are the changes needed?

Compatibility with the existing behavior

Does this PR introduce any user-facing change?

No
How was this patch tested?

Existing tests

Was this patch authored or co-authored using generative AI tooling?

forgot this, @WweiL, will take a look later

We should also uncomment and verify these comments:
https://github.com/apache/spark/blob/1fdd46f173f7bc90e0523eb0a2d5e8e27e990102/connector/connect/client/jvm/src/main/scala/org/apache/spark/sql/streaming/StreamingQueryManager.scala#L124-L125
https://github.com/apache/spark/blob/1fdd46f173f7bc90e0523eb0a2d5e8e27e990102/connector/connect/client/jvm/src/main/scala/org/apache/spark/sql/streaming/StreamingQuery.scala#L119-L120
But I could followup

We should also uncomment and verify these comments:
https://github.com/apache/spark/blob/1fdd46f173f7bc90e0523eb0a2d5e8e27e990102/connector/connect/client/jvm/src/main/scala/org/apache/spark/sql/streaming/StreamingQueryManager.scala#L124-L125
https://github.com/apache/spark/blob/1fdd46f173f7bc90e0523eb0a2d5e8e27e990102/connector/connect/client/jvm/src/main/scala/org/apache/spark/sql/streaming/StreamingQuery.scala#L119-L120
But I could followup

The test in ClientStreamingQuerySuite should validate that awaitTermination() throws StreamingQueryException. Since you have more contexts on streaming, could you help followup on this and verify these comments?

Merged to master.


React-hot-loader: Please require react-hot-loader before React.

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

Console no error
Current Behavior

React-hot-loader: fatal error caused by  ƒ BasicLayout()
no instrumentation found.  Please require react-hot-loader before React. More in troubleshooting.
Steps to Reproduce (for bugs)

Open the page
Use next/link to jump to other pages

Your Environment

Tech
Version

next
v5.0.0

node
v8.9.0

OS
macOS High Sierra version 10.13.3

browser
Chrome/64.0.3282.140

Please provide a repository to reproduce this.

@timneutkens
Sorry, I found the reason.
It's caused by the <Layout /> component in antd, but I do not know why.
As long as the use of this component, there will be this problem.
import * as React from 'react'
import { Layout } from 'antd'

const { Header, Content, Footer } = Layout

export default class BasicLayout extends React.Component {
  render() {
    return (
      <Layout>

        <Content />

      </Layout>
    )
  }
}

antd version of this issue is v3.2.0.
I switch it to v2.13.11 there is no problem.
But I use<EMAIL_ADDRESS>and<EMAIL_ADDRESS>is no problem.

@u3u Does this resolve it for you? https://github.com/gaearon/react-hot-loader/blob/master/docs/Troubleshooting.md#react-hot-loader-fatal-error-caused-by-xxx---no-instrumentation-found
I have this issue too in my app with a HOC layout component.

@jadengore Thank you very much!
I import the react-hot-loader module and fix it with the hot decorator! 😄
But all pages need this, a bit of trouble. 😕
import { hot } from 'react-hot-loader'
import * as React from 'react'
import styled from 'react-emotion'
import BasicLayout from 'layouts/basic-layout'

const H1 = styled.h1`
  margin: 0.5em;
  text-align: center;
`

@hot(module)
export default class IndexPage extends React.Component {
  public render() {
    return (
      <BasicLayout>

Index Page

      </BasicLayout>
    )
  }
}

@u3u use next/5.0.1-canary.10 and<EMAIL_ADDRESS>is no problem.

@OrangeXC
I tried this, but after using<EMAIL_ADDRESS>the problem was even more, I don't know why

This problem seems to be fixed in version 5.0.1-canary.11.
But there is a smaller chance of recurrence, no major impact.

I still have this problem with 5.0.1-canary.15

I am experiencing this as well in canary.15. In my case the error involves MuiThemeProvider and triggering hot reloading (save, etc). I assume I have something incorrectly setup however.

I am experiencing this without next.
Finally i resovle it with this:
webpack.config.js:

entry: [
        'react-hot-loader/patch',
        './src/app/index.js'
]

This is what solved this problem for me:
https://github.com/gaearon/react-hot-loader/issues/894#issuecomment-393005041


Fix Colorname Selectors SASS Warning ("You probably don't mean to use the color value black in interpolation here.")

Compiling foundation-sites with a current version of SASS (1.43.4), throws various of those issues:

Warning: You probably don't mean to use the color value white in interpolation here.
It may end up represented as white, which will likely produce invalid CSS.
Always quote color names when using them as strings or map keys (for example, "white").
If you really want to use the color value here, use '"" + $name'.
╷

377 │           &.#{$name} {
│               ^^^^^
╵
node_modules/foundation-sites/scss/components/_button.scss 377:15  foundation-button()

Needs to be fixed by writing the selector like so:
&#{"." + $name} {
or
&.#{"" + $name} {
.. but the first one doesn't look that ..hacky.

Would you like to submit a PR?

I tried to generate these same warnings but could not. What are you running to see these?

I got these by running our custom gulp sass build task (stripped it down to the relevant part):
function buildSass() {
  return src(config.sassRegex, {
      since: lastRun(buildSass)
    })
    //find files that depend on the files that have changed
    .pipe(sassInheritance({
      dir: 'scss/'
    }))
    .pipe(plumber()) // Hint: Plumber always need to be piped first!
    .pipe(sass.sync().on('error', sass.logError))
    .pipe(rename({
      suffix: '.min'
    }))
    .pipe(dest('./' + config.folderCss));
};

Relevant Versions:

sass: 1.43.5
node: 14.17.6

Similar issues:
https://github.com/ConciseCSS/concise.css/issues/52
https://stackoverflow.com/questions/57455245/how-to-i-solve-this-sass-interpolation-issue

Thanks. I will work on replicating this. Any PRs would be helpful if you have the time.

I think a better fix is to just quote your map keys, as suggested in the Sass documentation:

Most of the time, it’s a good idea to use quoted strings rather than unquoted strings for map keys. This is because some values, such as color names, may look like unquoted strings but actually be other types. To avoid confusing problems down the line, just use quotes!

So change something like:
$foundation-palette: (
    // ...
    black: #000
);

To:
$foundation-palette: (
    // ...
    "black": #000
);

Perhaps the Foundation Sass should do this as well, just to set an example.

@glen-84 great simple fix, I've tested this right now, works perfectly fine!
So we just need to fix these files:

https://github.com/foundation/foundation-sites/blob/8846fdad0289d1a0a80929c92a4245fcb781c662/scss/settings/_settings.scss#L71
https://github.com/foundation/foundation-sites/blob/8846fdad0289d1a0a80929c92a4245fcb781c662/scss/_global.scss#L27
probably the docs

It seems that _settings.scss should not be edited directly, because it is (re)generated by a gulp task.


Permits overriding permissions on /etc/shadow

To support a variety of distros, some of which recommend root:root 0600
permissions on the shadow file (RHEL-based) and others root:shadow
0640 (Debian-based), allow users to override the /etc/shadow owner,
group, and mode via a dict var.
Closes #86.

This looks good, I'll test it!


How to use prior data (gps, dop, compass etc.)?

Hi! I am trying to use some prior data:
a) gps
b) compass
c) accelerometer
d) dop

Which steps of the whole pipeline (opensfm_run_all) do benefit from this data? Are any of these fields (a, b, c, d) actually useless / ignored?

How to tell OpenSfm about this prior data? My current approach is inferred from the source code. Namely, I use "exif_overrides.json" like this:

exif_overrides[image] = {
    "gps" : {
        "latitude" :  my_lat,
        "longitude" : my_lon,
        "altitude" : my_altitude,
        "dop" : my_dop
    },
    "capture_time" : my_time,
    "compass" : my_compass,
    "accelerometer": my_accelerometer
}

However, I am not sure that I do everything correctly. Do I have to tweak config.yaml anyhow?

(a bit off-topic) How do I extract the updated compass value from the reconstruction file after the pipeline is completed?

I have similar question. Does OpenSfM benefit from EXIF GPS data when it estimates extrinsic camera parameters? I compared reconstructed results between w/ and w/o EXIF GPS, but the results looked almost the same.

Hello,
@kzykmyzw  Yes, GPS is used during bundle_adjustment (provided that bundle_use_gps is True). Its impact will depend on the value of gps.dop in EXIFs : a default value of 15 meters will have negligible impact, wehereas a RTK-like value of 0.01 meter can affect results.
@StrausMG

Bundle adjustment will only use the GPS (gps and dop) data, (provided that bundle_use_gps is True). The rest (compass, accelerometer) is not used for now.

To use your custom GPS data :

Write them into exif_overrides
Delete any previous EXIF data/folder (to make sure extract_metadata won't re-use it !)
Run whole pipeline.

You can get the 3x3 rotation matrix of a shot by calling shot.pose.get_rotation_matrix(). Apply its tranpose to the Z-vector of the camera [0, 0, 1] by doing np.transpose(shot.pose.get_rotation_matrix()).dot([0, 0, 1]). you'll get the Z-vector in world coordinates. Taking the arc-tangent of it using atan2(x, y), you'll get the compass angle.

@StrausMG
Simpler answer for question 3. : you can use the script bin/export_gps instead which will export a reconstruction in GPS+Compass coordinates and in a .csv format.


Backport "Make PC more resilient to crashes" to LTS

Backports #19488 to the LTS branch.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to lts-19520.
Reference


VJ Base stopped working

I used this yesterday and it worked perfectly, I was using VJ base NPCS. Today I spawned VJ base NPCS but I had no reverb at all for them but I had it for me. I tested this out by spawning regular combine npcs and it worked normally, but when I spawned VJ base NPCS (with default and half life 2 weapons) there was no reverb at all. The only thing that had reverb on the VJ NPCS was their grenades. I found this odd as it worked before, I tried reinstalling the mod but to no effect. I tried recording a video but couldn't as my computer was really laggy when I did.

Nevermind, turning Suppression (Revision) on fixed it.


:memo: Add documentation for order key in config.

The config documentation:
https://atom.io/docs/api/latest/Config
was missing info on the order key.

Thanks! :rainbow:


Update Archlinux aliases

Add support for aurman as pacaur is depreciated and no longer recommended

Aurman support has been terminated. The maintainer of this wrapper recommended migration to yay.

I count 18 aur helpers in the aur.
I think i need to refactor the plugin to ease adding and removing helpers.


Registered subjects

The README of gleam/otp mentions
There is no support for named processes. They are untyped global mutable variables which may be uninitialized, more research is needed to find a suitable type safe alternative.
I just wanted to drop a thought here and see if we can further explore a solution to this.
We now have the Subject, which is an opaque type:
pub opaque type Subject(message) {
  Subject(owner: Pid, tag: Reference)
}

As far as I understood is that the current approach to using supervised actors is to send the subject to the parent proces. I propose that we keep it like that, but instead of new_subject in the actor we do something like new_local_subject(name) and have
pub opaque type Subject(message) {
  // no name registration
  Subject(owner: Pid, tag: Reference)
  // for node-local name registration
  LocalSubject(name: Atom, tag: Reference)
  // for cluster-wide global name registration
  GlobalSubject(name: Atom, tag: Reference)
}

So basically everything remains the same but we don't need to handle actor restarts in our code explicitly: when the actor restarts it will register again under the same name.
Local, global and possible in the future custom registration can be done like in erlang:
https://github.com/erlang/otp/blob/79bc8234396a4f619f40dadfb8458064ab29aa85/lib/stdlib/src/gen.erl#L622-L640
Are there any problems with this solution?

Hello! Thanks for bringing this up, I've been thinking about this a bunch too over the last few years :)
This design enables a subject to effectively be inherited by a new process, removing the need to propagate a subject when a process is restarted/replaced.
It does not remove that need to get the subject the first time round, like Erlang is able to with its names. I think that's likely OK!
With this addition it would be possible for a subject to not have a pid. We would need to make the function for getting that return an option?
It would also mean that actor.start could technically succeed but not return a pid. Do we want to rethink the API there? For example, we might want to make it return a pid and also some other data rather than always a subject. This would also enable us to return other data from the start function, that would be cool.

This design enables a subject to effectively be inherited by a new process, removing the need to propagate a subject when a process is restarted/replaced.

Yes!

It does not remove that need to get the subject the first time round, like Erlang is able to with its names. I think that's likely OK!

Agreed :)

With this addition it would be possible for a subject to not have a pid. We would need to make the function for getting that return an option?

Yes, or what named now returns (a Result(Pid, Nil):
/// Look up a process by name, returning the pid if it exists.
///
@external(erlang, "gleam_erlang_ffi", "process_named")
pub fn named(name: Atom) -> Result(Pid, Nil)

The function subject_owner would then pattern match on the actual type and call named for the local registered kind.
However, this would then be a breaking change, not sure how you feel about that?

It would also mean that actor.start could technically succeed but not return a pid. Do we want to rethink the API there? For example, we might want to make it return a pid and also some other data rather than always a subject. This would also enable us to return other data from the start function, that would be cool.

Why? I was thinking of keeping the API the same and return a StartError if new_local_subject(name: Atom) fails (it tries to immediately register).

For global names I'm not sure how we would be able to construct them in a type safe way. Perhaps this should be left for later as it's much more complex.

Isn't it the same but then just calling global:register_name, like in erlang (see below)? Or are you worried about crossing node boundaries and hitting code version differences?

Another thing we may want think about is how we deal with sending to a named subject where the process is dead. Should that result in an error? For call maybe we want an error type with an error variant that calls out this specific situation.

However, this would then be a breaking change, not sure how you feel about that?

We're definitely going to need to make some breaking changes here, so I think it's good to think about what else we would want to break here.
Some candidates on my mind at the moment are:

Making it easier for processes to pass data back up the tree after they are started.
Making it possible to supervise non-Gleam processes by having the child spec return a pid rather than a subject.
Renaming "supervisor" to something else to make it clear that it is only one of many possible supervisors. "rest_for_one_supervisor"?

Is there anything else?

Isn't it the same but then just calling global:register_name, like in erlang (see below)? Or are you worried about crossing node boundaries and hitting code version differences?

Yes. In a distributed scenario there is no guarantee that the same code is running on both nodes. Worse: it commonly will not be the same.

Another thing we may want think about is how we deal with sending to a named subject where the process is dead.

Erlang does throw an error in this case as the docs of send/2 say:
The function fails with a badarg run-time error if Dest is an atom name, but this name is not registered. This is the only case when send fails for an unreachable destination Dest (of correct type).
For monitoring erlang does not throw an error but instead sends a :noproc DOWN message.

Should that result in an error? For call maybe we want an error type with an error variant that calls out this specific situation.

We already kind of have an error for this right? The type CallError has variant CalleeDown(reason: Dynamic) and it's used in try_call. So maybe we can make the reason typed? Or make reason optional?

However, this would then be a breaking change, not sure how you feel about that?

We're definitely going to need to make some breaking changes here, so I think it's good to think about what else we would want to break here.

Clear. I will play around with a few ideas and submit a draft PR for the changes in gleam/erlang so we can shoot at it, it makes the discussion easier I think.

Some candidates on my mind at the moment are:

Making it easier for processes to pass data back up the tree after they are started.
Making it possible to supervise non-Gleam processes by having the child spec return a pid rather than a subject.
Renaming "supervisor" to something else to make it clear that it is only one of many possible supervisors. "rest_for_one_supervisor"?

Sounds good! But these changes you're talking have to be made in gleam/otp right? For now I was just focusing on gleam/erlang but I do agree we should think about how these changes fit together.

Is there anything else?

Not that I can think of now.

Isn't it the same but then just calling global:register_name, like in erlang (see below)? Or are you worried about crossing node boundaries and hitting code version differences?

Yes. In a distributed scenario there is no guarantee that the same code is running on both nodes. Worse: it commonly will not be the same.

Clear.

@lpil I have a first try on the named-subjects branch, apart from introducing new_named_subject:
// Create a new `Subject` owned by the current process and registered with
/// the given name. This function may fail for the same reasons as `register/2`.
///
pub fn new_named_subject(name: Atom) -> Result(Subject(message), Nil) {
  let register_result = register(self(), name)
  result.map(register_result, fn(_) {
    Subject(destination: NamedDestination(name), tag: erlang.make_reference())
  })
}

it introduces a SubjectOwner type, with two breaking changes:

subject owner returns a SubjectOwner instead of Pid

pub type SubjectOwner {
  PidDestination(Pid)
  NamedDestination(Atom)
}

send returns a Result(message, Nil)

Do you think this is a direction that makes sense?

Sounds good! But these changes you're talking have to be made in gleam/otp right? For now I was just focusing on gleam/erlang but I do agree we should think about how these changes fit together.

We can't think about changes in the context of just one package, we need to think about the entire ecosystem before making any changes here as it's such an important part of Gleam.

subject owner returns a SubjectOwner instead of Pid

The point of the function is to return the pid so it must continue to return a pid. Otherwise everyone has to write the same boilerplate case expression around this function, which isn't very useful.

Do you think [result returning send] is a direction that makes sense?

I'm not sure. It is strange to me that it returns ok if it is a pid and the process is dead, but an error if it is a name and it is dead.

We can't think about changes in the context of just one package, we need to think about the entire ecosystem before making any changes here as it's such an important part of Gleam.

Makes sense 👍

The point of the function is to return the pid so it must continue to return a pid. Otherwise everyone has to write the same boilerplate case expression around this function, which isn't very useful.

You mean Result(Pid, Nil), right, because in case of a registered name the lookup might fail?

I'm not sure. It is strange to me that it returns ok if it is a pid and the process is dead, but an error if it is a name and it is dead.

Yes, I was also thinking of this. This is currently what erlang does (sending to dead pid -> no error, sending to unregistered name -> error), that's why I was following it. But I can see the benefits of unifying this. So then we would check for the 'liveness' for both the registered and unregistered processes?


#650 - Clean (predvalue, truevalue) columns

Fixes #650

All subgraph fetch and code has been updated to address this.
All tables and columns that describe predvalue and truevalue have been updated, and named correctly.

@idiom-bytes it is ready for review

We do not want to change the raw tables on live, this will force a re-fetch.
We're going to merge this into the DuckDB PR and force this change when the rest of the lake updates.


Examples missing

The page says that there should be an example for using the batch endpoint for adding attachments, but there are no examples provided.

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

ID: d9d8bd99-f62b-c907-350f-3b16d5880755
Version Independent ID: 8000e858-6f0f-e139-8dfb-64f2f06e762e
Content: Work item Batch Updates - Azure DevOps Services REST API
Content Source: docs-ref-conceptual/7.0/wit/WorkItemBatchUpdate.md
Service: azure-devops
Sub-service: azure-devops-ref
GitHub Login: @wnjenkin
Microsoft Alias: whjenkin

This was fixed in the newer docmentation versions Work Item Batch Update Api


Fix dataset path to use os.path.join

We have to use os.path.join.

I have no objection to merge this, but it seems the current code also works well on Windows.
Jenkins, test this please.

Jenkins CI test (for commit a594a826b23be9e237d396a212180ed417f1fb68) succeeded without errors!

LGTM!

Jenkins CI test (for commit a594a826b23be9e237d396a212180ed417f1fb68) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)


fixup to work with stackage 13.15

As you can see from travis build, this is a bad idea.

How can we get this working with a recent LTS package set? Now that the PR is closed I can't see the travis build.

If you click red-cross next to the commit, you'll see the link to https://travis-ci.org/phadej/github/builds/543669336

starting with
resolver: lts-13.23
packages: [.]

stack reports
In the dependencies for github-0.22:
    binary-instances must match >=1 && <1.1, but the stack configuration has no specified version  (latest matching version is 1)
    unordered-containers-<IP_ADDRESS> from stack configuration does not match >=<IP_ADDRESS> && <0.3  (latest matching version is <IP_ADDRESS>)

so let's fix that
Second try
resolver: lts-13.23
packages: [.]
extra-deps:
- binary-instances-1
- unordered-containers-<IP_ADDRESS>

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for binary-instances-1:
    binary-orphans-<IP_ADDRESS> from stack configuration does not match >=1.0.1 && <1.1  (latest matching version is 1.0.1)
    time-compat-<IP_ADDRESS> from stack configuration does not match >=<IP_ADDRESS> && <1.10  (latest matching version is <IP_ADDRESS>)
needed due to github-0.22 -> binary-instances-1

Third try:
resolver: lts-13.23
packages: [.]
extra-deps:
- binary-instances-1
- unordered-containers-<IP_ADDRESS>
- time-compat-<IP_ADDRESS>
- binary-orphans-1.0.1

Success, stack starts to build things.

Or:

use github which is in the snapshot (lts-12 has github-0.19, I don't know why github isn't in lts-13)
don't use stack if this manual process feels stupid.

Thanks, I love the intuitive github UI 😒
I'm aware of this process, the problem is that the version bounds are very restrictive and are causing issues with other libraries, in my case https://github.com/tsani/servant-github-webhook. Can some of these lower bounds be dropped? I can see from travis that binary-instances-1 needs to be used rather than just orphans.
I will create another PR that only has changes to the lower bounds


Move cursor after swap

Thanks for this great extension!
It would be nice if we could change the cursor position to the new position of the node. So for example when you start with:
a, b
( shows the cursor position)
and swap right, it would result in:
b, _a
instead of
_b, a
For reference vim-swap works like this.

Oh yeah, this is relatively trivial with ts_utils, let me push in just a second :) It will be a new option, defaulting to false.

Also, this will/should only work on the ISwap*With* commands

Please try and let me know if it works @sassanh!

Yes, it's working. Thanks!


[BUG] - Photo library authorization doesnt work for limited access

Photo library authorization returns .authorized for limited access, It should return .limited.
To Reproduce
Steps to reproduce the behavior:

Start the app first time and give limited access for photos.
Select images and it will get you to your app
if you use a logger or breakpoint then you will get .authorized not .limited as return value to JMPhotoPermissionManager.photo.authorizationStatus.

Expected behavior
I expect .limited access view to inflate not the .authorized gallery view.
JMPhotoPermissionManager.photo.authorizationStatus should be returning .limited
Desktop (please complete the following information):

OS: iOS

Smartphone (please complete the following information):

Device: iPhone 13 Pro
OS: iOS 16.7
Version 16.7

Additional context
Can be fixed in JPPhotoPermissionManager's authorizationStatus function to make it return accurate permission access.

The new API is available for iOS 14+ so that needs to be bumped up to 14 from 13. It's a simple fix so if you assign it to me I can make a PR.

@ibraiz11 Yes, feel free to open a PR but I would prefer an #if available so we don't lose compatibility on iOS 13.

This will create an access level issue as PHAccess is only available from 14+.
The @availabe annotation for 13 is not required for this class as changes are post 14 and the deprecated methods support back upto iOS 8.


readthedocs does not reflect 1.1's docs

The latest release (1.1) has an improved documentation, yet divime.readthedocs.io has the old, messy one. What is the procedure for getting changes reflected?

in fact, the master branch doesn't have the improved docs -- did this section not merge? Or was the release not based on master?

I have no idea. I really am not the best person for doing commits or merges or rebases or branches or any of the other git verb vocabulary. But I can at least guess, and try:
I didn't do anything to the master branch. We did a lot of development in major_reorganization. Jaden merged most all of that into yunified. (techically origin/yunified, for naming convention reasons I do not understand, probably some git special state).   Then I cleared and fixed conflicts and code and tests and launcher scripts so things all passed the test, and looked good to me, and made this be release 1.1.
I did not do anything to change the content of head, or mark a different branch as being the default branch.
Since then, to try and resolve this issue, I:

Merged major_reorganization into master branch.  (I think... I don't know, this is my first time doing this, and I am no Git expert, and may well have done several things wrong)
Merged yunified into master branch. (this involved editing almost every file that changed, to "resolve conflicts" apparently means you have to hack source files and look at every single change)

Now we have a master branch that might reflect release 2.0. but I have no confidence because it has not been tested. So it's still technically broken, until being tested, and having everyone look at it and make sure their changes are there, and that artifacts like documentation are just as up to date.
I'm not sure what the procedure is for updating divime.readthedocs.io. Assuming we need to create one. Maybe it's even documented somewhere, for developers: "how to update divime.readthedocs.io". Or could be.

https://github.com/srvk/DiViMe/wiki/gitProblems

readthedocs fixed by the merge


@craigspaeth => First pass at the /auction2 page using es6

(thanks @craigspaeth for the initial pair!) This is the first step in making a new, metaphysics-backed /auction page, written in es6 instead of coffeescript.
For now, it just shows the above-the-fold content for a sale, and is adminOnly:

For now, the view mostly copies existing templates from the auction app. I added a basic view test, but will continue to add those as there is more logic.

Looks like the shrinkwrap diff is off, try running rm npm-shrinkwrap.json && npm shrinkwrap --dev to see if it includes dev dependencies.

👏  Amazing! Great work! This is a very exciting rewrite and something we can use as a reference for pivoting how we build new sub-apps in Force. Good job adding the babel configs throughout the project! Looking forward to seeing more tests and comparing the code diff between the two apps.

Awesome work @sweir27! Stack upgrade, here we come!

@craigspaeth oops on the shrinkwrap! Added it back


[BUG] Navigation failed because browser has disconnected error for certain websites

Hi Just want to share an issue I found that bothered me for a while, which might have something to do with the compiled chromium version 80.
Environment

chrome-aws-lambda Version: 2.1.2
puppeteer / puppeteer-core Version: 2.1.x
OS: Linux
Node.js Version: 12.x
Lambda / GCF Runtime: Linux2

Expected Behavior

Puppeteer should be able to open website when using goTo()
Current Behavior

For certain websites, failed to open pages, it threw errors of Navigation failed because browser has disconnected, the affected websites that I found:

dailymotion.com
https://www.arabnews.com/
https://www.sayidaty.net/
https://uae.sharafdg.com/

But it works normal when testing in my local which is using chromium from module puppeteer.

My solution for anyone experiencing the same problem:
fix the chromium version to 79 by fix the module versions to :

chrome-aws-lambda: 2.0.x
puppeteer-core: 2.0.x
puppeteer: 2.0.x

My solution for anyone experiencing the same problem:
fix the chromium version to 79 by fix the module versions to :

chrome-aws-lambda: 2.0.x
puppeteer-core: 2.0.x
puppeteer: 2.0.x

thank you for saving me the headache
i was using chrome-aws-lambda with latest versions as well and ran into the same problem
using the 2.0.x versions fixed the problem of navigation crashes

This also worked for me! Thanks for this

Could you elaborate a little? How exactly do your package.json entries look like? Are you adding puppeteer to your node_modules too? I'm having exactly the same issue...

Just in case someone else gets confused:
"dependencies": {
    "chrome-aws-lambda": "2.0.x",
    "puppeteer-core": "2.0.x"
  }

did the trick for me too. thanks!

Same issue here. It can be reporduced by accessing https://filmweb.pl
Rollback resolved the problem.

We are updating to Puppeteer 2.1 on Lambda and found the same issue. We can also reproduce it perfectly with the following site:
https://toogoodtogo.nl
Also can report that the https://www.arabnews.com/ site mentioned by @neekey has exactly the same behaviour

Same issue on my end. We store HTML in a directory and start an express server within the Lambda pointing to it, then navigating the browser to that server. I can rollback to 2.0.x to resolve the problem.

I just tried rolling back to 2.0.x for both puppeteer-core and chrome-aws-lambda, but I'm still getting the disconnect. Did any other flags need to be turned on / off?

@14gasher I'm running with the following args:
import chromium from 'chrome-aws-lambda'
...
await chromium.puppeteer.launch({
    args: [
        ...chromium.args,
        '--single-process',
    ],
})

@neekey Sorry it took a bit to follow up on this.
In all of these cases, the browser always crashes with:

[0405/032327.939344:FATAL:service.cc(56)] Check failed: !base::SystemMonitor::Get().

Related issues:

https://github.com/puppeteer/puppeteer/issues/5487
https://github.com/alixaxel/chrome-aws-lambda/issues/3#issuecomment-595825598
https://github.com/alixaxel/chrome-aws-lambda/issues/39#issuecomment-589244053

What seems to be happening is Chromium is relying on additional processes for decoding audio/video, and since Lambda is single-threaded it ends up crashing. I'll see what can be done to overcome this.
In all these cases, it seems to be related to audio and/or video being played on the page:

https://www.dailymotion.com/
Caused by dmp.main.e0d00292a4faa658874d.es5.js which plays the videos on the site.

https://www.arabnews.com/
The issue seems caused by sca.17.4.114.js, which uses the WebAudio API to fingerprint the device.

https://www.sayidaty.net/
Also caused by sca.17.4.114.js.

https://uae.sharafdg.com/
Caused by notif.mp3.

https://www.filmweb.pl/
@pgreda Caused by 765260af-5da5-4c5f-94ad-c2f0f5db7182.mp4.

https://toogoodtogo.nl/
Caused by life-of-bread.mp4 / life-of-bread.webm.

What about discarding media requests as a workaround? Something along the lines of
await page.setRequestInterception(true);
page.on('request', (req) => {
   if (req.resourceType() === 'Media') {
      req.abort();
   }
   else {
      req.continue();
   }
}

Adding an abort on image and media requests allowed my lambda to complete successfully.
await page.setRequestInterception(true);

page.on('request', async(request) => {
  const requestType = request.resourceType();

  if (requestType === 'image' || requestType === 'media') {
    return request.abort();
  }

  return request.continue();
});

Please, note that I opened a ticket on chromium support https://bugs.chromium.org/p/chromium/issues/detail?id=1060099#c6

Recently found this issue again, workaround is to remove --single-process from the args passed:
    const args = chromium.args
    args.splice(args.indexOf('--single-process'), 1)
    return await chromium.puppeteer.launch({
        args,
        ...
    })

Unfortunately this doesn't work on AWS Lambda, the browser does never start. @alixaxel Do you know of any way to make it work without --single-process? Thanks!

Seems like AudioService init bug at --single-process mod was solved on Chromium 25 days ago

Seems like AudioService init bug at --single-process mod was solved on Chromium 25 days ago

@silveur I suppose we will have to wait for 3.0 to include the fix?

@alixaxel do you think you could package latest version of chromium with chrome-aws-lambda so that we can test if it solves.
If you don't have time, can you explain how to do it please?

Adding an abort on image and media requests allowed my lambda to complete successfully.
await page.setRequestInterception(true);

page.on('request', async(request) => {
  const requestType = request.resourceType();

  if (requestType === 'image' || requestType === 'media') {
    return request.abort();
  }

  return request.continue();
});

my workaround was to also ignore all javascript files. Luckily I didn't need any of them
requestType === 'script'

I have the same issue with https://www.jetblue.com/travel-agents/travel-agent-waiver-codes website.
As far as I can see there are no media types which are requested.  @neekey  am i right that the only way now to solve it in single process mode is package downgrade?

@gsouf Spent the entire day around this, adding the following option to args seems to solve it:
--disable-features=AudioServiceOutOfProcess

Tested on 81.0.4044.0 (which will be published today hopefully).

Glad to see you're okay!

@alixaxel you're the boss thanks!
Also I don't know if you noticed, an internal fix should come in chrome 83

This is issue is still coming up.
"status": "failed",
"error": "Navigation failed because browser has disconnected!",
"context": {
"callbackWaitsForEmptyEventLoop": true,
"functionVersion": "$LATEST",
`try {
let chromeArgs = chromium.args;
chromeArgs.push('--disable-features=AudioServiceOutOfProcess');
chromeArgs.push('--disable-features=AudioServiceOutOfProcessKillAtHang');
chromeArgs.push('--disable-software-rasterizer');
chromeArgs.push('--disable-gpu');

browser = await chromium.puppeteer.launch({
  args: chromeArgs,
  defaultViewport: chromium.defaultViewport,
  executablePath: await chromium.executablePath,
  headless: chromium.headless,
  ignoreHTTPSErrors: true
});

//Create
const page = await browser.newPage();
await page.setUserAgent(event.user_agent);
await page.setViewport({width: event.view_port.width, height: event.view_port.height, deviceScaleFactor: 1});

await page.goto(event.screen_shot_url);

//const image = await page.screenshot();
//await Tooling.toS3(Tooling.getPushConfig(image, event.bucket, `image/png`, event.destination, Tooling.s3FileAcl))

result = await page.title();

} catch (e) {
console.log(e);
console.log('Failed')
return failed(e, context)
} finally {
if (browser !== null) {
await browser.close();
}
}`

Hi!!
I have the same issue.
Environment

chrome-aws-lambda: ^5.5.0
puppeteer-core: ^5.5.0
OS: Linux
Node: nodejs12.x
Lambda: Linux2

I include some code, I hope it would helpful
serverless.yml
service: generate-file

plugins:
  - serverless-webpack
  - serverless-plugin-warmup
  - serverless-plugin-git-variables

provider:
  name: aws
  runtime: nodejs12.x
  memorySize: 1536
  timeout: 30
  tracing: true
  stage: ${self:custom.stacks.${self:custom.stack}.stage, "dev"}
  region: ${self:custom.stacks.${self:custom.stack}.region, "us-east-1"}
  profile: ${self:custom.stacks.${self:custom.stack}.profile, "default"}
  layers: ${file(config/config.yml):${self:provider.stage}.layers}
  vpc: ${self:custom.stacks.${self:custom.stack}.vpc}
  environment: ${file(config/environment.yml):${self:provider.stage}.environment}
  iamRoleStatements: ${file(config/iam.yml):${self:provider.stage}.iamRoleStatements}
  tags:
    branch: ${git:branch}
    commit: ${git:sha1}
    version: ${git:describeLight}
  apiKeys:
    - ApiKey-${self:service}-${self:provider.stage}

functions:
  generate_pdf:
    description: Generate PDF files from a HTML template.
    handler: src/handlers/generatePDF/handler.handler

resources: ${file(config/resources.yml):${self:provider.stage}.resources}

custom:
  webpack:
    webpackConfig: ./webpack.config.js
    includeModules: true
  stack: ${opt:stack, "dev"}
  stacks: ${file(config/stacks.yml):stacks}
  prefix: ${self:custom.stacks.${self:custom.stack}.prefix}
  scheduleEnabled:
    production: true
    dev: false
  warmup:
    events:
      schedule: 'rate(5 minutes)'
    timeout: 20
    prewarm: true
    enabled: production
    memorySize: 512
    role: ${self:custom.stacks.${self:custom.stack}.warmupRole}
  exportGitVariables: false

generatePDF.ts
function getHTML(templateContent: string, templateName: string) {
  const templateFile = FileSystem.readFileSync(
    `./src/templates/${templateName}/index.hbs`,
    'utf8',
  );
  const template = Handlerbars.compile(templateFile);

  return template(templateContent);
}

export default async function (
  bucketName: string,
  fileName: string,
  templateContent: string,
  templateName: string,
  s3: S3,
) {
  let browser = null;

  try {
    const executablePath = await Chromium.executablePath;

    browser = await Chromium.puppeteer.launch({
      args: ['--disable-features=AudioServiceOutOfProcess', ...Chromium.args],
      defaultViewport: Chromium.defaultViewport,
      executablePath,
      headless: Chromium.headless,
    });

    const browserPage = await browser.newPage();

    browserPage.setContent(getHTML(templateContent, templateName));

    const pdf = await browserPage.pdf({
      format: 'A4',
      printBackground: true,
    });

    s3Upload(bucketName, fileName, pdf, s3);
  } catch (error) {
    console.error(error);
  } finally {
    if (browser) {
      await browser.close();
    }
  }
}

Expected Behavior
Puppeteer should be able to generate the PDF file
Current Behavior
The process raises this error
{
    "errorType": "Runtime.UnhandledPromiseRejection",
    "errorMessage": "Error: Navigation failed because browser has disconnected!",
    "reason": {
        "errorType": "Error",
        "errorMessage": "Navigation failed because browser has disconnected!",
        "stack": [
            "Error: Navigation failed because browser has disconnected!",
            "    at /var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/LifecycleWatcher.js:51:147",
            "    at /var/task/node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.js:51:62",
            "    at Array.map (<anonymous>)",
            "    at Object.emit (/var/task/node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.js:51:43)",
            "    at CDPSession.emit (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EventEmitter.js:72:22)",
            "    at CDPSession._onClosed (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js:247:14)",
            "    at Connection._onClose (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js:128:21)",
            "    at WebSocket.<anonymous> (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/node/NodeWebSocketTransport.js:17:30)",
            "    at WebSocket.onClose (/var/task/node_modules/ws/lib/event-target.js:136:16)",
            "    at WebSocket.emit (events.js:314:20)"
        ]
    },
    "promise": {},
    "stack": [
        "Runtime.UnhandledPromiseRejection: Error: Navigation failed because browser has disconnected!",
        "    at process.<anonymous> (/var/runtime/index.js:35:15)",
        "    at process.emit (events.js:314:20)",
        "    at process.EventEmitter.emit (domain.js:483:12)",
        "    at processPromiseRejections (internal/process/promises.js:209:33)",
        "    at processTicksAndRejections (internal/process/task_queues.js:98:32)"
    ]
}

@AlexisNava can you please try running the same script in your local terminal with puppeteer option dumpio: true.
This issue is most likely related to chrome itself, if it is dumpio will give you the exact trace returned by chrome.
You can also try to run the same script with disabled single-process flag

@gsouf
I added the option dumpio: true.
export default async function (
  bucketName: string,
  fileName: string,
  templateContent: string,
  templateName: string,
  s3: S3,
) {
  let browser = null;

  try {
    browser = await Chromium.puppeteer.launch({
      args: ['--disable-features=AudioServiceOutOfProcess', ...Chromium.args],
      defaultViewport: Chromium.defaultViewport,
      executablePath: await Chromium.executablePath,
      headless: Chromium.headless,
      dumpio: true,
    });

    const browserPage = await browser.newPage();

    browserPage.setContent(getHTML(templateContent, templateName));

    const pdf = await browserPage.pdf({
      format: 'A4',
      printBackground: true,
    });

    s3Upload(bucketName, fileName, pdf, s3);
  } catch (error) {
    console.error(error);
  } finally {
    if (browser) {
      await browser.close();
    }
  }
}

This is the output:
[23867:23872:1202/114102.049578:ERROR:service_utils.cc(157)] --ignore-gpu-blacklist is deprecated and will be removed in 2020Q4, use --ignore-gpu-blocklist instead.

DevTools listening on ws://<IP_ADDRESS>:44521/devtools/browser/f23ccf34-e8ff-424f-9188-4929d9eddf7c
Error: Protocol error (Page.printToPDF): PrintToPDF is not implemented
    at /home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:208:63
    at new Promise (<anonymous>)
    at CDPSession.send (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:207:16)
    at Page.pdf (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Page.js:1175:43)
    at Object.default_1 [as default] (/home/alexis/Development/Fondeadora/generate_file/src/handlers/generatePDF/app.ts:53:35)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  message: 'Protocol error (Page.printToPDF): PrintToPDF is not implemented'
}
(node:23856) UnhandledPromiseRejectionWarning: Error: Navigation failed because browser has disconnected!
    at /home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/LifecycleWatcher.js:51:147
    at /home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/vendor/mitt/src/index.js:51:62
    at Array.map (<anonymous>)
    at Object.emit (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/vendor/mitt/src/index.js:51:43)
    at CDPSession.emit (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/EventEmitter.js:72:22)
    at CDPSession._onClosed (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:247:14)
    at Connection._onClose (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:128:21)
    at WebSocket.<anonymous> (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/node/NodeWebSocketTransport.js:17:30)
    at WebSocket.onClose (/home/alexis/Development/Fondeadora/generate_file/node_modules/ws/lib/event-target.js:136:16)
    at WebSocket.emit (events.js:311:20)
(node:23856) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:23856) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I search the error: Error: Protocol error (Page.printToPDF): PrintToPDF is not implemented and I found this other closed issue.
An answer from the issue suggests this code:
const puppeteer = require("puppeteer");

(async function() {
  try {
    const browser = await puppeteer.launch({
      dumpio: true,
      headless: false,
    });
    const page = await browser.newPage();
    await page.goto('http://think.dolhub.com');
    await page.pdf({path: 'html-page.pdf', format: 'A4'});
    await browser.close();
  } catch(err) {
    console.log("Failed to convert URL to PDF ("+err.name+" - "+err.message+")");
    console.log(err);
  }
})();

I changed my code by applying headless: false and moving await browser.close(); inside of the try
export default async function (
  bucketName: string,
  fileName: string,
  templateContent: string,
  templateName: string,
  s3: S3,
) {
  let browser = null;

  try {
    browser = await Chromium.puppeteer.launch({
      args: ['--disable-features=AudioServiceOutOfProcess', ...Chromium.args],
      defaultViewport: Chromium.defaultViewport,
      executablePath: await Chromium.executablePath,
      headless: false,
      dumpio: true,
    });

    const browserPage = await browser.newPage();

    browserPage.setContent(getHTML(templateContent, templateName));

    const pdf = await browserPage.pdf({
      format: 'A4',
      printBackground: true,
    });

    s3Upload(bucketName, fileName, pdf, s3);

    await browser.close();
  } catch (error) {
    console.error(error);
  }
}

This is the output:
[24906:24911:1202/115221.056929:ERROR:service_utils.cc(157)] --ignore-gpu-blacklist is deprecated and will be removed in 2020Q4, use --ignore-gpu-blocklist instead.

DevTools listening on ws://<IP_ADDRESS>:45177/devtools/browser/4aed8ea9-9099-489c-b6bd-90504a67c2b7
Error: Protocol error (Page.printToPDF): PrintToPDF is not implemented
    at /home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:208:63
    at new Promise (<anonymous>)
    at CDPSession.send (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:207:16)
    at Page.pdf (/home/alexis/Development/Fondeadora/generate_file/node_modules/puppeteer/lib/cjs/puppeteer/common/Page.js:1175:43)
    at Object.default_1 [as default] (/home/alexis/Development/Fondeadora/generate_file/src/handlers/generatePDF/app.ts:53:35)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  message: 'Protocol error (Page.printToPDF): PrintToPDF is not implemented'
}

@alixaxel browserPage.setContent is supposed to be async, maybe add a await keyword in front of it.
Also this issue does not seem to be directly related to chrome-aws-lambda and neither to this specific ticket, so if the issue persists after you tried to await the function then I would suggest that you try to get support from the puppeteer repository or on stackoverfklow using the tag puppeteer.

Okay, thank you @gsouf

@gsouf @AlexisNava I had the same problem and adding await to browserPage.setContent fixed it!

For me helped next actions:
waitUntil: ['load', 'networkidle0', 'networkidle2']
return await chromium.puppeteer.launch({
args: [
...chromium.args,
'--disable-features=AudioServiceOutOfProcess',
'--disable-gpu',
'--disable-software-rasterize',
]
....
use await where it's need
pupeteer has a limit of tabs, so I created a locker class and after 7 tabs close browser and open again.
versions
"@types/puppeteer": "^2.0.1",
"@types/puppeteer-core": "^5.4.0",
"puppeteer": "^5.5.0",
"puppeteer-core": "^5.5.0",

Downgrating of pupeteer did't helped for me, so it's my solution.

@agnusha these errors are mostly due to bugs in chromium. So the best solution to get a long term fix is to start puppeteer with dumpio set to true, get a stack trace of chromium chrashing and report the issue here https://bugs.chromium.org/p/chromium/issues/list with a reproducible case

Adding an abort on image and media requests allowed my lambda to complete successfully.
await page.setRequestInterception(true);

page.on('request', async(request) => {
  const requestType = request.resourceType();

  if (requestType === 'image' || requestType === 'media') {
    return request.abort();
  }

  return request.continue();
});

My script was running fine locally, but got the error when running on an AWS Lambda.
Intercepted the requests like you showed here and it worked like a charm 🙌