text:
[WIP] New tutorials on Learn

This PR and branch will cover the following tutorials:

pulumi fundamentals
aws fundamentals
azure fundamentals
gcp fundamentals
pulumi in practice
pulumi in operations

For those working on this, see https://github.com/pulumi/pulumi-hugo/blob/master/LEARN.md for how to add new topics, etc!
Also, please append /learn/pulumi-fundamentals/ to the preview URL to see what this looks like, etc
Signed-off-by: Matt Stratton matt.stratton@gmail.com

@cnunciato can you fix up the white space between the different modules? id like there to be some space between them

@cnunciato @nimbinatus i think we are going to need some indicator of level or similar on the cards. something to indicate that pulumi fundamentals on azure requires pulumi fundamentals first, in order to be successful.
@nimbinatus id also recommend adjusting the titles a bit, because i don't think repeating pulumi fundamentals makes it clear to folks where they should start.

PR here to adjust the horizontal spacing: https://github.com/pulumi/pulumi-hugo/pull/597

random thought: should we come up with another name other than module since module is what we use in our API ref docs?

Yes, I believe we’re going to be changing this to align with some new terminology — “tutorials” or “guides”, IIRC.

Before I forget, here's the current feedback from other reviews that needs to get addressed as well:

[ ] Lede copy needs to reflect explaining concepts of Pulumi through an real-life app
[ ] Subheader copy should reflect #1
[ ] Should we do other languages in the future?
[ ] We don't need to follow the tutorial->module->topics convention. We can create our own hierarchy for what makes sense. Christian can change the code to reflect whatever we decide
[ ] Does AWS, GCP, K8s, and Azure tutorials become their own "top level card" or are they embedded into the Fundamentals
[ ] About this module is great
[ ] Topics doesn't show a sequence. It almost seems like you can skip to #3.
[ ] Topic 2 - "ideal configuration of your infrastructure" - its not ideal but desired right?
[ ] Bring in the concept of state. The program produces a desired configuration graph
[ ] I really like how you make them run into an error in Topic 3 as a way to learn
[ ] name=f"backend-{stack}", - needs comma
[ ] The code sometimes has 5 tabs and sometimes 9
[ ] Why do we export the mongo container ID versus the front end one
[ ] Topic 4 - you can't get this display without running pulumi up first. "You can also list the current stack’s resources with pulumi stack:"
[ ]  Topic 4 - typo - "So what else can do with stack outputs? "
[ ] I would add a summary of what people learned at the end and then direct them to the cloud specific tutorials
[ ] You want to replace spara? "pulumi config set org spara"
[ ] Give some examples of something that is incredibly useful "These exported values are incredibly useful when using Pulumi stacks."
[ ] "Use the defaults, and ensure you use the prod stack, the same one you currently have up for the my-first-app project." - this is a bit confusing. basically accept all the defaults but the stack defaults and type in prod instead
[ ] stack_ref is the variable StackReference is the declaration
[ ] For the use-docker-id project, I am actually confused about the relationship of the prod stacks and the relationship of projects and stacks. Why does use-docker-id need to use a prod stack to be able to see to my-first-app? Doesn't <f"{org}/my-first-app/{stack}"> denote the stack to reference from?

@zchase imm gonna be updating that diagram this week. don't mind if that means i need to open another pr but wanted to give you a heads up.

@susanev sounds good --- I think we can wait for your work on the diagram before we ship this.

NOTE: This current stage is a partial commit. I have to step away, so there's some rough spots for me to smooth out (namely that there's three files that are basically the same thing in the Practice pathway now). Just wanted to get changes up there for people to work from while I go.

Sorry for the huge blob of text, but I took notes as I looked through this, so apologies that a few of these could be PR feedback on the specific lines instead of in this comment.
pulumi-fundamentals/

A Pulumi account and token should link to http://pulumi-hugo-origin-pr-552-f2c00dde.s3-website.us-west-2.amazonaws.com/docs/intro/console/accounts/#access-tokens
"As to skills, you should be able to" missing colon at the end
"MongoDB, ExpressJS, NodeJS, and React (the MERN stack)" -- re-order so that it's the same as MERN?

pulumi-fundamentals/create-a-pulumi-project/

"Infrastructure in Pulumi is organized into projects, the highest level component in a Pulumi ecosystem." --Infrastructure in Pulumi is organized into projects, the highest level component in a Pulumi ecosystem. I think we should avoid using the term 'component' in general unless we're referring to actual components. Suggestion: "Infrastructure in Pulumi is organized into projects, which represent a Pulumi program and its corresponding stacks" (we may even want to reference https://www.pulumi.com/docs/intro/concepts/#overview)

pulumi-fundamentals/create-docker-images/

"In Pulumi, you have resources managed by resource providers, and then you can group those resources to abstract them (such as a group of compute instances that all have the same configuration and implementation)." -> "In Pulumi, your resources are managed by resource providers. You can group those resources to abstract them (such as a group of compute instances that all have the same configuration and implementation) via component resources."?
"then move everything from the code repository directory to the app/ directory." -- end with a colon instead of period to indicate this paragraph describes the following block of terminal commands
"the ideal configuration" -> "the desired state"
"In this file, we import, or call, the main Pulumi package and the Docker provider." -- having the "or call" feels like it will only cause confusion/ambiguity
"we figure out which stack we’re on in the command line" -- Perhaps consider rephrasing to more around what stack we're operating against since we're not in a command line context and could be confusing to the reader? This will also help emphasize the difference b/t project and stack where we can talk about how the project (program) can do stack-specific things.
"If we tried to run pulumi up without the mongo_container running, we would get an error message." -- technically, this shouldn't be possible in the sense that pulumi up is what will try to enforce all the resources exist. we'd get an error if pulumi up couldn't create the container, but if it exists in state, it will work
"set up our Pulumi file" -> program?

It's probably worth noting at some point in this article the fact that we're mixing language constructs like os.getcwd in our program and that the full language ecosystem (including 3rd party libraries) is available to us. I also think it might be helpful to explain the typing support we have and how someone can take advantage of either their IDE completion or our documentation to determine the correct types for the inputs.
Secrets
One of the questions/concerns that usually comes up is "is secretness transitive?" i.e. if I create an output from a secret, is that output secret? We should show an example of how secrets 'taint' other outputs and preserve secretness.
Other
When we end, shouldn't the primary button take me back to the Learn homepage vs. the module's index? I've just completed the module, so I don't need to go back to the index.

This is great feedback, @leezen! We really appreciate it!

One thought for fundamentals; we should make sure to end the tutorial with a pulumi destroy (not sure we want to do a destroy of the stack, etc, as we will keep using that in future tutorials, but the local resources should get destroyed)

@nimbinatus or @zchase could one of you update the intro paragraph so its a bit more consumable? ill be updating the diagram later today to better fit in the space as well.

@nimbinatus for the fundamentals on cloud, is there any way we can name these starting with the cloud first? so azure & pulumi fundamentals, or similar? this will make it easier for folks to scan instead of starting them all with the same word.

@susanev definitely can do both :) Give me a bit

@cnunciato there seems to be something weird about the shadows on these lesson cards, they don't seem to be the same as the rest of the website. can this be fixed?

I just pushed up the preview for the updates to the main text and the renaming of the cloud pathways. One thing I'm running into is fitting/adjusting the wording on the meta images to match; the layout is a bit tight and would look a bit odd if I put the cloud first. Thoughts?

@nimbinatus im kinda confused about these cards and the titles. it seems like we have the titles twice on the card. is that intended?
i also think there's some layout and hierarchy issues on the cards. everything is big, the pulumi logo, the pulumipus, the heading, the repeated heading. i think we should reduce the size of the pulumi logo quite a bit at a minimum.
i could take a pass at redesigning the layout of these cards later today if you think that would be helpful, let me know.

@cnunciato weird gray like border on the top, heavier shadow on the bottom

Ah, compared to the marketing cards, I see.
The cards we use on marketing pages use a custom shadow that has an even spread, whereas the Tailwind utilities we use everywhere else (shadow, shadow-xl, shadow-2xl, etc.) use a graduated spread. Basically, we have two different "light" sources going on: on the marketing site, L+R seems to have designed for a light source that hits the page head-on, giving cards and things an even shadow on all sides, whereas everywhere else (via Tailwind's default settings), the light hits the page from above -- hence longer shadows below elevated items, but no shadows above them (since that wouldn't make physical sense). I threw a 1px gray border onto the cards to give these cards definition against the white background (without which you wouldn't be able to discern their upper edges), but I agree that doesn't look great.
So the main problem is that we have an inconsistent light source. I actually prefer L+R's treatment aesthetically, so we just have to decide -- do we want to light our pages from the front, or from the top? If it's the front, awesome, we just need to add some customization to Tailwind (shouldn't be a size-smallish thing to do that), and then design with this same light source in mind going forward. What do you think? I'll make a card with all the details if you agree.

ive created some recommended ux designs for the landing page and dropped it in yalls figma file. feel free to take and use what yall think will work and drop what wont. my core recommendations are to (1) consider the hierarchy of information when laying out the cards and (2) use the cloud logos more prominently

Thanks for the help, @susanev. I'm happy to take care of this.

@cnunciato i think @nimbinatus is going to make some decisions on what specific things they want from that and what they don't, so id hold off for now.

@nimbinatus @susanev checking in on the UI adjustments above. Do y'all want to move forward with this? Any changes to make first?

Congratulations! You’ve finished the Pulumi in Practice pathway! In this pathway, you learned all about stacks, outputs, and stack references so you can work in multiple environments. You also learned about secrets in Pulumi and testing with standard third-party frameworks. The best next step in your journey to learn Pulumi is to work on the Pulumi in Operations pathway.  - the link to Pulumi in Operations isn't correct

noticed that the button on the last pages is outlined instead of fill why did we make this choice?
also its a bit weird that the last buttons have the forward arrow since you are really going backward at that point
with only 2 cards i think it looks a bit strange that its left-aligned; we may want to center the pathways heading and the cards on the page

i only looked very quickly, though did try to scan every page and use every button. i do not feel comfortable with this merging until someone else reviews though.

Completely fair. I think there's going to be a lot of reviews for this (some folks have already reviewed the content, but explicit reviews are better).
Re the buttons, that was how it was when I picked this up. Maybe a question for @cnunciato?
And I can center the cards for now to patch it until the other pathways come out if you think that makes sense :)

authors: aaronkao cnunciato leezen mattstratton nimbinatus susanev zchase


text:
Upstream v3.20.0

Fixes #300
Fixes #297
Update to upstream v3.20.0 with @lukehoban's patch to replace the github.com/hashicorp/vault dependency.
Unfortunately, the dependency trim does not resolve #197.

Snyk rejects on security but not license.

source: gharchive/pull-request

repo: pulumi/pulumi-vault

license_type: permissive

license_source: github-api


text:
Update Checkly provider docs

Improve checkly provider existing docs and add hot-to-guides

@susanev missed that, thanks for letting me know. Fixed :)

repo: pulumi/registry


text:
The bucket has been removed ?

Hi.
Since today, we got this error on our pipelines:
 $ pulumi plugin install resource scaleway v0.1.8 --server https://dl.briggs.work/pulumi/releases/plugins
[resource plugin scaleway-0.1.8] installing
warning: Error downloading plugin: 404 HTTP error fetching plugin from https://dl.briggs.work/pulumi/releases/plugins/pulumi-resource-scaleway-v0.1.8-darwin-arm64.tar.gz
Will retry in 80ms [1/5]
warning: Error downloading plugin: 404 HTTP error fetching plugin from https://dl.briggs.work/pulumi/releases/plugins/pulumi-resource-scaleway-v0.1.8-darwin-arm64.tar.gz
Will retry in 160ms [2/5]
warning: Error downloading plugin: 404 HTTP error fetching plugin from https://dl.briggs.work/pulumi/releases/plugins/pulumi-resource-scaleway-v0.1.8-darwin-arm64.tar.gz
Will retry in 320ms [3/5]
warning: Error downloading plugin: 404 HTTP error fetching plugin from https://dl.briggs.work/pulumi/releases/plugins/pulumi-resource-scaleway-v0.1.8-darwin-arm64.tar.gz
Will retry in 640ms [4/5]
warning: Error downloading plugin: 404 HTTP error fetching plugin from https://dl.briggs.work/pulumi/releases/plugins/pulumi-resource-scaleway-v0.1.8-darwin-arm64.tar.gz
Will retry in 1.28s [5/5]
error: [resource plugin scaleway-0.1.8] downloading from https://dl.briggs.work/pulumi/releases/plugins: failed to download plugin: scaleway-0.1.8: 404 HTTP error fetching plugin from https://dl.briggs.work/pulumi/releases/plugins/pulumi-resource-scaleway-v0.1.8-darwin-arm64.tar.gz

It seems the bucket has compeletly been removed:
$ curl -v "https://dl.briggs.work/pulumi/releases/plugins/"
*   Trying 172.67.172.142:443...
* Connected to dl.briggs.work (172.67.172.142) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Cloudflare, Inc.; CN=sni.cloudflaressl.com
*  start date: Jun 15 00:00:00 2022 GMT
*  expire date: Jun 15 23:59:59 2023 GMT
*  subjectAltName: host "dl.briggs.work" matched cert's "*.briggs.work"
*  issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
*  SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x151011c00)
> GET /pulumi/releases/plugins/ HTTP/2
> Host: dl.briggs.work
> user-agent: curl/7.79.1
> accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
< HTTP/2 404
< date: Wed, 24 Aug 2022 23:55:31 GMT
< content-type: application/xml
< x-amz-id-2: txa1fda8fda3a248018254c-006306ba73
< x-amz-request-id: txa1fda8fda3a248018254c-006306ba73
< cf-cache-status: DYNAMIC
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=eb7zxvi7xAq%2FuHmBvhlsGYmAuPRD2ll0xQ%2B9W9umSzliXuz2n%2Fa7Hd5O%2BUBb6vpAJhG4oMUwQuY96JiL%2BU68i6hhgxRwC4CfVHlbzp5SFjfkr2%2BA3s4GJbiQ2lc2ysGYsQ%3D%3D"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
< server: cloudflare
< cf-ray: 740004f02e023295-TUN
< alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
<
<?xml version='1.0' encoding='UTF-8'?>
* Connection #0 to host dl.briggs.work left intact
<Error>NoSuchBucket<Message>The specified bucket does not exist.</Message><RequestId>txa1fda8fda3a248018254c-006306ba73</RequestId><BucketName>dl.briggs.work</BucketName></Error>

For now we pushed the 0.1.8 released packages in our own object storage bucket and it works.
Thanks in advance

Hey @idrissneumann - sorry about this. I removed the bucket to reduce my costs, but I should have waited to get the new published releases out first.
I'll close this out once we get a new upload sorted.

Yeah as I said in Twitter: no need to feel sorry, you're perfectly right.
This is not a blocking issue for us, we have our workaround (which consists to download the packaged released from github and push it in our own object storage bucket, then use this bucket url with pulumi). I'd just wait the new URL before closing this issue but there's no emergency at all.
And thanks for your amazing work !

source: gharchive/issue

authors: idrissneumann jaxxstorm

repo: pulumiverse/pulumi-scaleway


text:
Support mounting a Dropbox directory

This would allow users to edit their ledgers using their own editor, as well as enabling scripts and so on.

https://github.com/dropbox/dropbox-sdk-js

authors: cfcosta puncsky

repo: puncsky/beancount-mobile

license: MIT


text:
new "max" image size, also default to full size if not specified (onl…

…y for images). With unit tests

This looks good. The one question I would have is if we should add back in the rescale task, so sites with existing images can take advantage of the new size?

Yep, that's an important issue now.
On Fri, Jun 3, 2016 at 4:14 PM, Jimmy Harrison notifications@github.com
wrote:

This looks good. The one question I would have is if we should add back in
the rescale task, so sites with existing images can take advantage of the
new size?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe/pull/582#issuecomment-223682853,
or mute the thread
https://github.com/notifications/unsubscribe/AAB9fQH63C79q762ZaUmXx-hJKLRgakxks5qIIs9gaJpZM4It1mx
.

--
*THOMAS BOUTELL, *DEV & OPS
P'UNK AVENUE | (215) 755-1330  |  punkave.com

But I think it can be separated. If you have an existing project without
it, you can just ignore the max size for now.
On Fri, Jun 3, 2016 at 9:16 PM, Tom Boutell tom@punkave.com wrote:

Yep, that's an important issue now.
On Fri, Jun 3, 2016 at 4:14 PM, Jimmy Harrison notifications@github.com
wrote:

This looks good. The one question I would have is if we should add back
in the rescale task, so sites with existing images can take advantage of
the new size?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe/pull/582#issuecomment-223682853,
or mute the thread
https://github.com/notifications/unsubscribe/AAB9fQH63C79q762ZaUmXx-hJKLRgakxks5qIIs9gaJpZM4It1mx
.

--
*THOMAS BOUTELL, *DEV & OPS
P'UNK AVENUE | (215) 755-1330  |  punkave.com

--
*THOMAS BOUTELL, *DEV & OPS
P'UNK AVENUE | (215) 755-1330  |  punkave.com

authors: boutell jth-

repo: punkave/apostrophe

license: mit

license_source: bigquery


text:
Touch test does not pass in BiDi (Chrome)

  1) Touchscreen
       should report touches:
     Error: expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 2

  Array [
-   "Touchstart: 0",
-   "Touchend: 0",
+   "Touchstart: 2",
+   "Touchend: 2",
  ]
      at Context.<anonymous> (/Users/alexrudenko/src/puppeteer/test/src/touchscreen.spec.ts:49:7)
      at processTicksAndRejections (node:internal/process/task_queues:95:5)

Tests now pass, but there is a bug in Chromium where touch events are not accurately being dispatched. It affects CDP and BiDi.

authors: OrKoN jrandolf

repo: puppeteer/puppeteer


text:
Error

Something went wrong Error: Protocol error (Runtime.callFunctionOn): Target closed
this error happens when it sends large files or videos ..
I think u added some limitation in it

I fixed this downgrading to 7.0.1


text:
[Bug]: Failed to launch the browser process!

Bug description
An error is thrown when I use the following code！
 const browser = await puppeteer.launch({
         headless: true
 });

error message:
Failed to launch the browser process!\n/opt/video-url-analysis/node_modules/_puppeteer@13.1.0@puppeteer/.local-chromium/linux-950341/chrome-linux/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory\n\n\nTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md\n

I saw the tips about node 14.0.0 Chrome is downloaded but fails to launch on Node.js 14 , but I use the node version is v14.18.1!
What do I need to do to run it!
Puppeteer version
13.1.0
Node.js version
v14.18.1
npm version
6.14.15
What operating system are you seeing the problem on?
Linux
Relevant log output
Failed to launch the browser process!\n/opt/video-url-analysis/node_modules/_puppeteer@13.1.0@puppeteer/.local-chromium/linux-950341/chrome-linux/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory\n\n\nTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md\n

I'm having this same issue after deploying in Heroku. In local is working perfectly, but in Heroku it fails. I've followed the
guidelines adding the buildpack and so, but same error.
This is how I initialize the browser:
 browser = await puppeteer.launch({             headless: true,             args: ['--no-sandbox', '--disable-setuid-sandbox'],         });
The error I get:
Error: Failed to launch the browser process!
Here the buildpacks added in Heroku

Now I've solved it！install libXScrnSaver in the server and can run it!
sudo yum -y install libXScrnSaver-1.2.2-6.1.el7.x86_64

I think that's not valid for me in Heroku. Thanks anyway for your answer. I'll keep searching

Just in case anyone comes here with same problem for Heroku, I created an issue in the libpack library for Heroku. Hopefully it will be discuss there:
https://github.com/jontewks/puppeteer-heroku-buildpack/issues/94

@davicente What does the command do?
I am getting bash: yum: command not found as error.

@zhaosheng808 What does the command do?
I am getting bash: yum: command not found as error.

@zhaosheng808 What does the command do?
I am getting bash: yum: command not found as error.

I don't know the specific principle of this, but I have performed the following operations and the problem has been solved
sudo yum -y install libXScrnSaver-1.2.2-6.1.el7.x86_64

and
sudo yum install -y chromium

you can see this issues https://github.com/puppeteer/puppeteer/issues/5361

Now I've solved it！install libXScrnSaver in the server and can run it!
sudo yum -y install libXScrnSaver-1.2.2-6.1.el7.x86_64

Its also worked for me Thank You @davicente

You may install the buildpack on the server using github repo: https://git.centos.org/rpms/libXScrnSaver/

In Ubuntu you have to:
    apt install chromium-browser
    apt install libxkbcommon0
    apt install libxshmfence1
    apt install 1622  apt-get install ca-certificates
    apt install fonts-liberation
    apt install libasound2
    apt install libatk-bridge2.0-0
    apt install libatk1.0-0
    apt install libc6
    apt install libcairo2
    apt install libcups2
    apt install libdbus-1-3
    apt install libexpat1
    apt install libfontconfig1
    apt install libgbm1
    apt install libgcc1
    apt install libglib2.0-0
    apt install libgtk-3-0
    apt install libnspr4
    apt install libnss3
    apt install libpango-1.0-0
    apt install libpangocairo-1.0-0
    apt install libstdc++6
    apt install libx11-6
    apt install libx11-xcb1
    apt install libxcb1
    apt install libxcomposite1
    apt install libxcursor1
    apt install libxdamage1
    apt install libxext6
    apt install libxfixes3
    apt install libxi6
    apt install libxrandr2
    apt install libxrender1
    apt install libxss1
    apt install libxtst6
    apt install lsb-release wget
    apt install xdg-utils
    apt install

bbb

puppeteer

Getting the error Failed to launch both playwright and puppeteer

I have same issue
in locally it work perfectly but when i copy it into docker i have got an error
Error: Unable to launch browser, error message: Failed to launch the browser process!
 /usr/src/node_modules/puppeteer/.local-chromium/linux-1022525/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory```

In Ubuntu you have to:
    apt install chromium-browser
    apt install libxkbcommon0
    apt install libxshmfence1
    apt install 1622  apt-get install ca-certificates
    apt install fonts-liberation
    apt install libasound2
    apt install libatk-bridge2.0-0
    apt install libatk1.0-0
    apt install libc6
    apt install libcairo2
    apt install libcups2
    apt install libdbus-1-3
    apt install libexpat1
    apt install libfontconfig1
    apt install libgbm1
    apt install libgcc1
    apt install libglib2.0-0
    apt install libgtk-3-0
    apt install libnspr4
    apt install libnss3
    apt install libpango-1.0-0
    apt install libpangocairo-1.0-0
    apt install libstdc++6
    apt install libx11-6
    apt install libx11-xcb1
    apt install libxcb1
    apt install libxcomposite1
    apt install libxcursor1
    apt install libxdamage1
    apt install libxext6
    apt install libxfixes3
    apt install libxi6
    apt install libxrandr2
    apt install libxrender1
    apt install libxss1
    apt install libxtst6
    apt install lsb-release wget
    apt install xdg-utils
    apt install

we were using azure web apps
after some restart we need to execute above
in order make puppter working

In Ubuntu you can try;
sudo apt install libxkbcommon0 libxshmfence1 ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils to install all the packages togather

In Ubuntu you can try;
sudo apt install libxkbcommon0 libxshmfence1 ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils to install all the packages togather

worked for me Thank You

In Ubuntu you can try;
sudo apt install libxkbcommon0 libxshmfence1 ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils to install all the packages togather

thanks, man. can you explain why it's working after installing all the packages?

In Ubuntu you can try;
sudo apt install libxkbcommon0 libxshmfence1 ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils to install all the packages togather

Thank you!


text:
[Bug]: Using $eval or evaluate selector to get child elements results in missing HTML properties

Bug description
Hello, when I try to use await page.$eval('.container', e => e.children) to select a nested element like the one below:

A

B

C

I do not get the element's available properties. For example , when I selected an element with children and want to get its innerHTML or innerText. All I end up with is  after converting to an array from a HTMLCollection is:
[
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {  vei: { onClick: [Object] } },
  {},
  { vei: { onClick: [Object] } },
  { vei: { onClick: [Object] } }
]

This is a list of buttons for a paginated navigation element and I would like to get the innerText properties for each element so I can access the page numbers, but only the onClick event handler property is accessible. Selecting the elements using the selector individually I am able to access all of its properties. I've also tried using
await queryLoadedPage.evaluate(() => {
      let elem = document.querySelector('.container');
      let children = elem?.children
      console.log(children)
   });

But this just returns undefined for the children. Any help would be greatly appreciated!
Puppeteer version
19.4.0
Node.js version
v18.12.1
npm version
9.1.3
What operating system are you seeing the problem on?
Linux, Windows
Configuration file
No response
Relevant log output
No response

@JohnnyRacer you'd need to serialize the data inside the evaluate functions yourself (await page.$eval('.container', e => e.innerHTML) for the inner HTML content). I don't think there is a bug here? Or could you provide an executable reproductions?

@OrKoN  Could you explain what you mean by serialize the data? The docs doesn't really cover anything on properly handling child elements. I've looked at some Stack Overflow solutions but none seem to address the issue I'm facing.
For this example below:

A

B

C

Using the following snippet :
(async () => {
    const browser = await puppeteer.launch({
        headless: true,
        executablePath: executablePath(),
      });
    const page = await browser.newPage();
    await page.goto('http://localhost:5000/test_child.html',{
        waitUntil: 'networkidle2',
      });
    let child = await page.$eval('.container', e =>e.children);
      console.log(child)
    await browser.close();

})()

I'm getting the following as the output, from console.log(child)
{ '0': {}, '1': {}, '2': {} }

There are no properties that are accessible within the objects.
Using evaluate with the following snippet :
(async () => {
    const browser = await puppeteer.launch({
        headless: true,
        executablePath: executablePath(),
      });
    const page = await browser.newPage();
    await page.goto('http://localhost:5000/test_child.html',{
        waitUntil: 'networkidle2',
      });
    await page.evaluate(() => {
        let element = document.querySelector('.container');
        let child = element?.children;
        console.log(element);
        console.log(child);
     })

    await browser.close();

})()

The element itself is null.

What I mean is
  let children = await page.$eval('.container', e => {
        const data = [];
        for (const child of e.children) {
            data.push({ tagName: child.tagName, innerText: child.innerText });
        }
        return data;
    });
    console.log(children); // [ { tagName: 'DIV', innerText: 'A' },  { tagName: 'DIV', innerText: 'B' }, { tagName: 'DIV', innerText: 'C' }
]

otherwise you get the default representation of the DOM Element as a string.

Can you explain why there is a await page.setContent? It kinda doesn't make sense to me since Puppeteer is trying to get the content from the page instead of modifying its contents. I'm sorry if this is a rhetorical question.

@JohnnyRacer it's just easier so that I don't need to create an HTML for every bug report. Should be no difference whether you navigate or setContent.

Oh I see, thank you for the explanation. I just tested your snippet and it's worked as intended!

@JohnnyRacer better ask on StackOverflow. Short answer: the same way, either using selectors or DOM APIs in the evaluated function.

authors: JohnnyRacer OrKoN


text:
[Bug]: Consecutive alerts won't work

Bug expectation
I expected that there should be two alerts, first was a confirm alert and next is a normal alert. but only first one was executed
Bug behavior

[ ] Flaky
[ ] PDF

Minimal, reproducible example
// sample.js
const puppeteer = require("puppeteer");

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

(async () => {
  const browser = await puppeteer.launch({ headless: false, slowMo: 100 });
  const page = await browser.newPage();
  page.on('dialog', async (dialog) => {
    console.log(dialog.message());
    await dialog.accept();
  });

  await page.goto("test.html", {waitUntil: 'networkidle2'});
  await browser.close();
})();

// test.html
<script>
  if (window.confirm("confirm")) {
    alert('test')
  }
</script>

Error string
no error
Puppeteer configuration
launch: {
    dumpio: true,
    headless: false,
    args: [
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--disable-dev-shm-usage',
      '--disable-software-rasterizer',
      '--disable-gpu',
      '--start-maximize',
    ],
    defaultViewport: {
      width: 1920,
      height: 1080,
    },
  },
  browserContext: 'default',

Puppeteer version
19.4.1
Node version
18.12.1
Package manager
yarn
Package manager version
3.3.1
Operating system
Linux

Sorry for bugging, it was not a bug. I misunderstood the dialog
I'll close this ticket


text:
(BKR-305) Support custom docker options

Allows custom docker options to be set via the container options JSON. Node set wide options can be set under the config hash using the dockeropts hash. Per host options can be set in each host using the dockeropts hash. Per host options override node set options. The dockeropts hash is copied into the container options.
An example of an option is Labels. A hash can be used to set any number of labels for the containers. For example, to target a specific Docker Swarm collection.

Can one of the admins verify this patch?

@puppetlabs-jenkins test this please

authors: double16 mchllweeks puppetlabs-jenkins

repo: puppetlabs/beaker-docker


text:
(BKR-155) Add simple tagging to vmpooler hosts

Manually testing this against vmpooler-dev (internal) I end up with a VM tagged as such:
{
  "ok": true,
  "d6nz94h38x79lrn": {
    "template": "debian-7-x86_64",
    "lifetime": 2,
    "running": 0.0,
    "tags": {
      "jenkins_build_url": "",
      "department": "unknown",
      "project": "Beaker",
      "created_by": "sschneider"
    },
    "domain": "delivery.puppetlabs.net"
  }
}

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/670/
:red_circle: Test failed.

Broke spec:
1) Beaker::Vmpooler#provision provisions hosts from the pool
     Failure/Error: vmpooler.provision
     NameError:
       uninitialized constant MockNet::HTTP::Put
     # ./lib/beaker/hypervisor/vmpooler.rb:130:in `block in provision'
     # ./lib/beaker/hypervisor/vmpooler.rb:120:in `each'
     # ./lib/beaker/hypervisor/vmpooler.rb:120:in `each_with_index'
     # ./lib/beaker/hypervisor/vmpooler.rb:120:in `provision'
     # ./spec/beaker/hypervisor/vmpooler_spec.rb:51:in `block (3 levels) in <module:Beaker>'

  2) Beaker::Vmpooler#cleanup cleans up hosts in the pool
     Failure/Error: vmpooler.provision
     NameError:
       uninitialized constant MockNet::HTTP::Put
     # ./lib/beaker/hypervisor/vmpooler.rb:130:in `block in provision'
     # ./lib/beaker/hypervisor/vmpooler.rb:120:in `each'
     # ./lib/beaker/hypervisor/vmpooler.rb:120:in `each_with_index'
     # ./lib/beaker/hypervisor/vmpooler.rb:120:in `provision'
     # ./spec/beaker/hypervisor/vmpooler_spec.rb:70:in `block (3 levels) in <module:Beaker>'

@anodelman on it.

@puppetlabs-jenkins retest this please!

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/671/
:red_circle: Test failed.

@puppetlabs-jenkins darn you!

@puppetlabs-jenkins retest this please.

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/672/
:red_circle: Test failed.

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/673/
:red_circle: Test failed.

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/674/
:red_circle: Test failed.

authors: anodelman puppetlabs-jenkins sschneid

repo: puppetlabs/beaker


text:
(BKR-519) Beaker prints invisible messages in debug mode (black-on-bl…

Use normal colour instead of bold as some terminals (mac) can't handle the grey without additional configuration.
Ends up looking like this (green is my regular colour):

Tests seem to be passing:
bundle exec rake spec
...
Finished in 14.13 seconds (files took 1.79 seconds to load)
1045 examples, 0 failures

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/1511/
Test FAILed.

Test failure seems unrelated?

Yup, failure unrelated to patch.


text:
Human outputter does not print plan result for wait_until_available correctly

Describe the Bug
The result object created from wait_until_available does not have an action. The human outputter wants to print the action and fails when it attempts to capitalize it when printing a result.
Expected Behavior
Maybe wait_until_available should have an action?
Steps to Reproduce
plan test(){
    return wait_until_available('localhost')
}

NoMethodError: undefined method `capitalize' for nil:NilClass
  /home/cas/working_dir/bolt/lib/bolt/outputter/human.rb:101:in `print_result'
  /home/cas/working_dir/bolt/lib/bolt/outputter/human.rb:362:in `block in print_result_set'
  /home/cas/working_dir/bolt/lib/bolt/result_set.rb:41:in `block in each'
  /home/cas/working_dir/bolt/lib/bolt/result_set.rb:41:in `each'
  /home/cas/working_dir/bolt/lib/bolt/result_set.rb:41:in `each'
  /home/cas/working_dir/bolt/lib/bolt/outputter/human.rb:362:in `print_result_set'
  /home/cas/working_dir/bolt/lib/bolt/outputter/human.rb:355:in `print_plan_result'
  /home/cas/working_dir/bolt/lib/bolt/cli.rb:524:in `run_plan'
  /home/cas/working_dir/bolt/lib/bolt/cli.rb:373:in `execute'
  /home/cas/working_dir/bolt/exe/bolt:10:in `<top (required)>'
  /home/cas/working_dir/bolt/vendor/bundle/ruby/2.5.0/bin/bolt:23:in `load'
  /home/cas/working_dir/bolt/vendor/bundle/ruby/2.5.0/bin/bolt:23:in `<top (required)>'

This can be closed, it is fixed in 2.5.0 as part of #1726

authors: donoghuc nmaludy

repo: puppetlabs/bolt


text:
Add GitHub Enterprise instructions

We need to add instructions for how to setup the control-repo with GitHub.

Fixed in #46

repo: puppetlabs/control-repo


text:
Improve the README

These changes update the README to make it more useful to people new to Control Repositories.
Also cleans up a bunch of markdown syntax and adds links... lots of links.

@jbondpdx No worries. Happy to have your eyes on it 👍


text:
(FACT-1709) Add support for memory fact on FreeBSD

The structure was copied from the OpenBSD resolver, adjusted to collect information through FreeBSD's sysctl interface.

CLA signed by all contributors.

What does your FreeBSD development environment look like? I was trying to build this to try it out and ran into problems compiling Leatherman. You clearly got it working; what OS, compiler, and Boost versions were you using?

@Magisus I am running FreeBSD 11.0-STABLE and tested all changes with #1594, #1595, #1596, #1597, #1598 and #1599 combined on FreeBSD 10.3-RELEASE and 11.0-RELEASE.
In all cases, I build with system's cc (clang) and boost-libs version is 1.64.0.
leatherman is compiled with -DLEATHERMAN_SHARED:BOOL=ON and two patches that have been arround in the FreeBSD port for some time : 1 (remove -Werror flag), 2 (LTH-118, aka puppetlabs/leatherman#213).

If you are interested in more details:

The work in progress ports that I plan to commit in FreeBSD ports tree are available in the following repository: https://github.com/smortex/puppet5 (where you can browse e.g. leatherman 1.0.0 port)
A call for testers was announced: https://romain.blogreen.org/blog/2017/07/call-for-testers-puppet-5-ports-on-freebsd/
This was also announced to ports maintainers and (by side effects) on the ruby@ mailing-list: https://lists.freebsd.org/pipermail/freebsd-ruby/2017-July/007444.html

Please let me know if you need more details. Thanks!

CLA signed by all contributors.

authors: Magisus puppetcla smortex

repo: puppetlabs/facter


text:
(#2279) Handle providers with multiple installed versions - ruby gems

Ruby gems can have multiple versions installed, and the current
implementation of the gem provider only reads the very latest installed
version when self.instances is called.  This leads to Puppet potentially
reinstalling the gem on every run if the Puppet manifest specifies a gem
that is installed, but is not the latest version installed.
This does require a change to how the package type checks if ensure is
insync? to handle multiple versions for the 'is' ensure value, but the
change is backward compatible with the providers that specify single
versions.

I have a feeling you're familiar with this bug.

authors: lifton mmrobins

repo: puppetlabs/puppet


text:
(PUP-3090) Set always_cache_features to true for masters

While for agents caching features would not be good as they can have new
features delivered during the course of a run, for masters this poses no
problems and decreases overhead during catalog compilation. Without
this, masters will reset and reinterrogate features during the course of
operation which is expensive.

:+1:

yep, the expensive part is https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/rubygems.rb#L50. We clear the gem directory cache as a resource may install a new gem, which won't be visible until the cache is cleared.
It feels wrong to me to add this to puppet.conf that puppet-agent lays down... I was thinking puppet-server packaging would do this, somewhere in https://github.com/puppetlabs/puppet-server/blob/master/resources/ext/config/conf.d/puppetserver.conf#L2-L15, though it does require more server side work to plumb the setting through.
Also changing puppet-server won't help webrick or passenger, but I don't know that I care.

@joshcooper yea I'm all for all of these master settings being added or handled by puppet-server, i just don't know that it's ready today or in scope for the current release. @nwolfe @cprice404 thoughts?

Is it wrong to add this one setting to puppet-agent's puppet.conf, or is it wrong in general that puppet-agent's puppet.conf is all about master settings?

@kylog yes

It seems wrong that puppet-agent is specifying how puppet-server should behave, when puppet-server is the "application" using the puppet "library"

CLA signed by all contributors.

I agree with @kylog ; the fact that there is a [master] section at all in the puppet.conf file created by the puppet-agent packaging seems hokey.  That  said, if there's going to be such a section, adding this setting to it doesn't seem like we're making things any worse than they already are, IMO.
Ideally if we're going to try to move the responsibility of configuring the [master] section over to the Puppet Server packaging, we'd do the whole section all at once?  If so, then it's maybe a question of whether now is the right time to address that, and I honestly don't know :)
@haus when you say "I'm all for these settings being handled by puppet-server", do you mean by putting them in our own config files and no longer supporting the [master] section in puppet.conf?  Or do you mean by having the packaging for Puppet Server be responsible for adding the appropriate settings to the shared puppet.conf file?  If the former, we're probably not ready yet; I think we'd need to put some deprecation warnings in to Puppet for a while first.  If the latter, it's just a matter of whether there's a sane way to do that during our package installation... if there is, it's fine by me.

@cprice404 mostly i mean the former (or some variation on the vardir override that puppet-server already has), but i get that it isn't in the cards today. the latter is pretty hard to do in a sane way in packaging, because puppet-agent owns the config file, and having another package change the file breaks assumptions there.

So puppet-server already changes puppet.conf during post-install: https://github.com/puppetlabs/puppet-server/pull/411/files#r25198384

I was under the impression that a lot of that stuff in puppet server's postinst was considered to be 'hacks' that @haus wanted to get rid of.  But I'm fine with this being solved there if @haus is.

Stop
On Monday, February 23, 2015, Chris Price notifications@github.com wrote:

I was under the impression that a lot of that stuff in puppet server's
postinst was considered to be 'hacks' that @haus https://github.com/haus
wanted to get rid of. But I'm fine with this being solved there if @haus
https://github.com/haus is.
—
Reply to this email directly or view it on GitHub
https://github.com/puppetlabs/puppet/pull/3640#issuecomment-75633874.

Calling config set as is being done in this PR https://github.com/puppetlabs/puppet-server/pull/411#discussion-diff-25198384R6 is a way of getting rid of this section, and it's probably fine. The only weird case is if a user has updated puppet.conf's master section to change the defaults being set by puppetserver, there isn't a good way of knowing.

If puppet-server postinst changes the value, then it's going to run puppet config set ... and overwrite whatever may have been in puppet.conf.
If we go with how this PR is currently implemented (in puppet-agent), will it apply the new puppet.conf? Or does it only create the file if it doesn't exist?

@joshcooper It depends a little on how a user's package manager is configured. In the general case, the puppet.conf as packaged will be laid down and updated as long as the user has not modified the file. puppetserver running puppet config set in the post will update the file, so the immediate consequence is that future updates would not be applied automatically to the file. However, I imagine most master puppet.conf files are updated for various customizations, so this might be a moot point.

If puppet-server postinst changes the value, then it's going to run puppet config set ... and overwrite whatever may have been in puppet.conf.

Yeah, this is the part that would concern me:

At package installation time, puppet-server postinst config sets the value to true.

User edits the file, changing the value to false.

At package upgrade time, puppet-server postinst config automatically resets the value to true.

I suppose the user might have other conflicts to manage if the puppet.conf had changed from one version to the next.  But if it didn't, it seems like we might have automatically reverted the user's selection without any warning, which seems bad.  Unless I'm not understanding how this all works...
If the scenario I mentioned above is plausible and we don't have a better story for how to sanely encapsulate the master settings in master-specific packaging for now, then I'd be in favor of managing the setting in puppet-agent's default puppet.conf - even though I agree that this would be architecturally distasteful for the long term.

@camlow325 I think the best course in the immediate term is probably to pull these 4 settings into puppetserver's postinst, and just do a check to see if there is a master setting for that already, and if not, set it. That way, a user can change the setting and not have it be overwritten by puppetserver.

just do a check to see if there is a master setting for that already

What's the best way to do that?  If you ask for the value of the setting from the CLI config tool, I think you'll get a value back whether or not one was explicitly set in the config file -- not sure you can tell the difference.  Suppose we could scrape the puppet.conf file directly to see if it is set, but that seems hacky.

@camlow325 yea, you're right. despite the description of puppet config print (This subcommand can inspect and modify settings from Puppet's 'puppet.conf' configuration file.), it makes no distinction between a config value that is the default and a config value that is not set in puppet.conf. So it would be some sort of scraping, which i agree is hacky and fragile.

So @camlow325 @haus the short term fix is to merge this as is, and someday change puppetserver package to use its own puppet.conf?

That's my suggestion for the short-term change - happy to be overruled.  :smile:
Not sure what the best long-term solution is.  Having the master at least manage the settings that have historically been in the master section of the "puppet.conf" file seems like the right direction.  Not sure if that would end up being a new file, "master.conf"?, or a wholesale replacement for "puppet.conf", or something else?  Would be nice, in the process, to land on a solution that eliminates the duplication we're already doing between "puppetserver.conf" and "puppet.conf" for the master's confdir and vardir settings.

That seems fine to me.
If someday puppet config print can distinguish between a setting being the default and a setting not being present in puppet.conf, at which point, my other suggestion becomes more tenable.

I think that the long-term goal should that in Puppet 5, anything that someone might have set in [master] (that is actually related to the master) would just go into the existing puppetserver.conf file.  We need to get rid of run_mode and that would be a step towards it.  run_mode is the only reason we have a duplicate vardir setting.

:+1: on merge as-is.
And yeah in puppet 5, this goes away.

And this has the added benefit of working for webrick and passenger, so merging

Reverted in https://github.com/puppetlabs/puppet/commit/3dcafadbc208dc216d8b5fd44a8eb19211e9b5db

authors: KaysLounge camlow325 cprice404 haus joshcooper kylog puppetcla shrug


text:
(PUP-4744) Fixes reposdir split by whitespace

reposdir can be split by whitespace - http://yum.baseurl.org/gitweb?p=yum.git;a=blob;f=yum/config.py;h=97e5e3d3b063294a96227a67cce43a9655cd3aa6;hb=30c993c19b8b85f44e7cec436484862ab55a6961#l171

Puppet previously only split by commas
Now changed to a regex of [,|\s|\n] which will catch whitespace, commas and newlines (like in the original python code)
Added new spec for this new regex

Now against stable (Continued from https://github.com/puppetlabs/puppet/pull/4495)

\o/

Thank you @petems!

authors: MikaelSmith joshcooper petems


text:
(PUP-8271) Make loader discovery find 'init' for plans and tasks

Before this commit, the discovery mechanism would incorrectly consider a
file named plans/init.pp to denote a plan named <module-name>::init.
The same thing was true files under tasks with names starting with
'init'.
This commit ensures that the SmartPath used for Plans and Tasks is
aware of the 'init' semantics when producing the TypedName for the
actual Plan or Target, thus avoiding errors about a name mismatch when
the corresponding entity is loaded.

Supersedes #6467

CLA signed by all contributors.

authors: puppetcla thallgren


text:
i broke osrs images

idk

added in 7f492eeb20478ac222f784bfe141d90efa7e107e


text:
Bugfix/NLU-3499 - "00:XX" time not being recognized

Fix and testing for "00:XX"

AT run: https://jenkins.ininica.com/job/NLU/job/Recognizers-Text/208/

repo: purecloudlabs/Recognizers-Text


text:
Rename op to un

As suggested by @natefaubion. It reads much better that way and probably better expresses the behaviour too.
We could add an alias for now and then drop it the next time we update the core libraries, in fact.

Resolved by #5

repo: purescript/purescript-newtype


text:
Pusher doesn't call PusherDelegate when calls connect() with no network

Steps to reproduce

Implement the delegate PusherDelegate and listen to changedConnectionState(from:, to:) and receivedError(error:)
Call Pusher connect().

Expected behavior
If there is no internet connection when we call connect(), we should receive a pusher error on receivedError(error:).
Actual behavior
The connection state changes from disconnected to connecting and it doesn't return nothing on receivedError(error:). The state gets stuck in connecting.
Any improvements you suggest
PusherConnection+WebsocketDelegate has the method webSocketDidReceiveError(connection:, error:). It only logs the error. It could call PusherDelegate receivedError(error:) method.

receivedError(error:) is for error codes Pusher sends to your client. Its not for local network disconnection.
Its described in the readme https://github.com/pusher/pusher-websocket-swift#connection-delegate
Hope this clears things up.

Yeah, I had read that. I was just wondering that it could have an error for this network disconnection. Is there a solution for that in Pusher?
Because today this error is just logged in webSocketDidReceiveError(connection:, error:), and I receive no reply from Pusher in my code.

authors: benjamin-tang-pusher sampaioroberto

repo: pusher/pusher-websocket-swift


text:
🛑 Elibs is down

In 985b8ec, Elibs (https://elibs.unmer.ac.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Elibs is back up in 1faf2b7 after 5 minutes.

repo: pusimgit/upptime


text:
Please provide license

Please add license, so that the terms of usage of this tool are clear.

Thanks for your suggestion @petrasovaa
MIT License is added.

authors: petrasovaa puzzledqs

repo: puzzledqs/BBox-Label-Tool


text:
Error in fetching .

Please respond quickly.

Hey there, the new script for fetching test cases is in the works and should be ready in 3-4 days after testing. Thanks for hanging in there while we sort this out!
PEACE!

authors: VarunMishraa pvcodes

repo: pvcodes/cf-testcases


text:
Typescript Typings

I notice that htmr is written in typescript but isn't supplying any types for us to use with it in our code.
Is it possible to export the types during the rollup?
I've always used tsc to compile my npm modules so they include the typings.

Not sure if it's possible using rollup
Alternatively we could provide index.d.ts instead, considering the API surface is small enough

released in v0.8.0

authors: Arcath pveyes

repo: pveyes/htmr


text:
Remove type hints with impossible to import modules

In typegen, modules of type annotations are imported. However, some type hints can not be imported. An example is the return value of hashlib.sha256(). It is a hash instance defined in CPython and thus can not be imported. To generalize this which type hints should be removed, any module name which contains "-" is not a valid module name. To figure out whether a type hint should be removed, check the module name in imports.py. Parsing using cst.parse_expression(module) will generate a node of type cst.BinaryOperation. Remove such type hints if the name of the module is invalid.

Why can this not be imported?
λ python
Python 3.10.5 (main, Jun  6 2022, 18:49:26) [GCC 12.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from hashlib import sha256
>>> type(sha256)
<class 'builtin_function_or_method'>

Unclear why. On tracing the poetry repository, the following warning has been encountered: <class 'libcst._nodes.expression.BinaryOperation'> | lib-dynload._hashlib.cpython-310-x86_64-linux-gnu | HASH. Mark this as obsolete if unable to reproduce.

authors: RecurvedBow bengsparks

repo: pvs-hd-tea/PyTypes


text:
Barrows prayer potions and strange lockpick

I'm doing Barrows and the plugin is not tracking the consumption of Prayer potions, Strange old lockpick loads or teleports home

To be more specific, I'm making barrows, using magic and prayer potions during the dungeon and eventually some food
I noticed that while doing Barrows the plugin does not record the use of magic potions, prayer potions, food (Manta ray), the cost of Strange old lockpick and the use of house teleport tabs

When embarking on the Barrows mini-game in Old School RuneScape, adventurers often rely on prayer potions and the strange old lockpick to enhance their chances of success. Prayer potions barrow or borrow are essential as they replenish prayer points, which are crucial for maintaining protective prayers against the formidable Barrows Brothers.

I drank prayer pots inside a barrows room and inside the tunnel and they both were tracked
Closing this issue unless someone else can reproduce


text:
this is dumb, you should know where your project is located, i had to…

… make a guess to get to the site

Holy

authors: pwnwriter scientiac

repo: pwnwriter/haylxon


text:
🛑 NARLabs is down

In a7a6789, NARLabs (https://www.narlabs.org.tw/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NARLabs is back up in 79487a2.

repo: pwtsai/upptime


text:
🛑 NARLabs is down

In 222ce2c, NARLabs (https://www.narlabs.org.tw/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NARLabs is back up in ecccad7.


text:
Add context capture to formula materialisation

Context: https://github.com/py-econometrics/pyfixest/issues/769

pre-commit.ci autofix

@s3alfisc I added a unit test.
Would you like to add some integration tests too? if so, I'd be happy to have some guidance on where to put those. Thanks!

Hi @adamvig96 , looking very good so far, thank you! Could you add integration into test_api.py? I guess that testing equality of coefficients and SEs of creating splines via the new capture arg + formulaic vs "by hand" should do the job?

pre-commit.ci autofix

repo: py-econometrics/pyfixest


text:
removed causal-ml from poetry setup instructions

During december this option was removed from the pyproject.toml. As the current instruction throws an error, it might discourage unexperienced first-time contributors from pursuing, hence the clean up.
Signed-off-by: Michael marien.mich@gmail.com

thanks for this fix @MichaelMarien

authors: MichaelMarien amit-sharma

repo: py-why/dowhy


text:
🛑 Hacker News is down

In ea9bcee, Hacker News (https://news.ycombinator.com) was down:

HTTP code: 502
Response time: 141 ms

Resolved: Hacker News is back up in 70106c2 after 8 minutes.


text:
[Request] Ability to change / disable prefix

Currently DIRECT-TF- can't be changed.

I would like to have an option to change or disable it entirely.

Sorry, no can do. The DIRECT- prefix is a hard requirement for WiFi direct networks on Android. Sorry.

repo: pyamsoft/tetherfi


text:
Postprocess Dependency Loop Failure - Alien Biomes

Mod source
PyAE Beta
Which mod are you having an issue with?

[ ] pyalienlife
[ ] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[X] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[X] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[ ] Crash
[ ] Progression
[ ] Balance
[ ] Pypostprocessing failure
[ ] Other

What is the problem?
failed to load py mods with alien biomes

Steps to reproduce
No response
Additional context
No response
Log file
No response

I have not had any issues with alien biomes loading in an earlier beta version if that may be relevant

I have not had any issues with alien biomes loading in an earlier beta version if that may be relevant

Just a quick work-around for now if intrested.
We got alien biomes to run when doing following steps (until fixed?)
Load alien biomes without py mods.
Reset alien biomes to all default settings.
Re-add py mods.

I have not had any issues with alien biomes loading in an earlier beta version if that may be relevant

Just a quick work-around for now if intrested. We got alien biomes to run when doing following steps (until fixed?)
Load alien biomes without py mods. Reset alien biomes to all default settings. Re-add py mods.

So can you figure out which setting change breaks it?

Probably, but currently at work.
I'll thinker with it tonight when I'm home.
If I find something I'll let you know here (unless someone else figures it out before me)

@ShadowGlass0
After testing most of the alien biomes settings it seems the culprit is only "Remove all Vegetation"
Turning this on gave me the same error

repo: pyanodon/pybugreports

license: Unlicense


text:
Add Non Conservative Periodic Waveform Source for Twin Builder [SINE,…

… PULSE, TRIANG, SAWTOOTH]

@SushobhitGupt maybe you could have a look also to components_catalog object that is now in schematic and which provides you the full list of components in Twinbuilder syslib and as well the possibility to place it. Anyway I think that most common used components should have dedicated method. I like it

Thanks, I will check it out. As you mentioned, some commonly used components can be exposed so that we can create some good examples and tutorials. That is what my intent is here.

repo: pyansys/pyaedt


text:
Alignment to other PyAnsys libraries

As per private conversation with @waltersma, I spend some time reviewing the repository and identified the following potential tasks. These will allow to align to other PyAnsys libraries:

[x] #341
[x] #340
[x] #339
[x] #338
[x] #336
[x] #337

I think those are the main major changes I can think of! I'd be happy to help as needed. Please let me know if you agree with all the changes. I'd create smaller PRs for each of the aforementioned tasks so that it is easier to review. And thanks in advance!

The changes needed for the next release have been synced up with our internal fork now. You can proceed with the refactoring necessary to complete the tasks above. Keep me in the loop with your PRs.

Sure, thanks @ninad-kamat! Opening individual issues for each of the above points 😄

Hi @ninad-kamat this has been finalized with the implementation of the multi-version docs. Right on time for your next 0.3.0 release =) Closing issue since it was only necessary for tracking purposes.

authors: RobPasMue ninad-kamat

repo: pyansys/pyprimemesh


text:
Update dependencies and fix Windows compatibility on Python 3.12

This is follow-up of the now closed PR #174. This new PR tries to update the PKCS#11 specification to the latest published version and brings compatibility to Python 3.12 on Windows.
The specific changes of this PR are:

Update PKCS#11 Specification to version 3.1, published by OASIS Standard on 2023-07-23.
Removed deprecated references to Py_UNICODE* and replaced them by wchar_t as suggested by PEP-624.
Added compatibility to Python 3.12 in Windows by removing the Py_UNICODE* references.
Bump package version to 0.8.0.
Fixes #159
Fixes #165

The package has been tested on new virtual environments using Python 3.12 on Windows 11 with the asepkcs.dll (Athena Smartcard System ASE Card).

To be transparent about the maintenance situation: I don't have any access to HSMs. I'm not sure about @kislyuk?
This means that any changes cannot currently be tested with real HSMs.

@mathiasertl I can't promise anything ongoing, but I might be able to run the tests on Linux against AWS CloudHSMv2, if that would be of any use? Someone would have to note down exactly how to run the tests though! (I'd rather not try to work it out, get it wrong, and invalidate the results.)

Any update on this pull request? I'd really love to see 0.8.0 being released and finally being able to use python 3.12 on my windows box.

I guess this means it won't work with Python 3.13 also?

This PR has minor changes requested, if they are implemented I can merge this.
Note however that I don't think I can upload releases to PyPI at the moment. @kislyuk do you have upload permissions by now?

I do not. @danni can you please invite me to the python-pkcs11 package on PyPI?

Yes I can do that. Same username?

Yes, my PyPI username is identical to my GitHub one.
On Mon, Dec 9, 2024 at 16:26 Danielle Madeley @.***>
wrote:

Yes I can do that. Same username?
—
Reply to this email directly, view it on GitHub
https://github.com/pyauth/python-pkcs11/pull/183#issuecomment-2529907316,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGSOPNR2R54YTHQ6MG5J6L2EYYKNAVCNFSM6AAAAABPCOW5AOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMRZHEYDOMZRGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

My username is mati: https://pypi.org/user/mati/

authors: XobrekX danni haagensen is-alnilam joseavegaa kislyuk mathiasertl


text:
Python 3.11 support?

It would be nice to have a release with Python 3.11 support.

Hi Hood,
Once https://github.com/pyb2d/pyb2d/pull/63 lands 3.11 should be supported. Locally it works already like a charm

closed with #63

authors: DerThorsten hoodmane


text:
Add CVODE solver

Description
To improve the speed of our ODE models, I'd like to add CVODE from SUNDIALS to our suite of C solvers in addition to IDA.
More details in https://github.com/pybamm-team/PyBaMM/issues/3910#issuecomment-2312804655
Motivation
No response
Possible Implementation
No response
Additional context
No response

I prefer the new name you suggested SundialsSolver (instead of IDAKLUSolver), makes sense. Have you started on this one yet and is there a branch I can have a look at ? I'd like to implement openmp parallisation for the SundialsSolver sometime soon (i.e. part of https://github.com/pybamm-team/PyBaMM/pull/4260) but can hold off if you have already started

I prefer the new name you suggested SundialsSolver (instead of IDAKLUSolver), makes sense. Have you started on this one yet and is there a branch I can have a look at ? I'd like to implement openmp parallisation for the SundialsSolver sometime soon (i.e. part of #4260) but can hold off if you have already started

I haven't started working on this yet.

authors: MarcBerliner martinjrobins

repo: pybamm-team/PyBaMM


text:
CasADi 3.6.5

Description
Fixes #4044
Wheels are building: https://github.com/pybamm-team/casadi-vcpkg-registry/pull/1
Workflow run logs: https://github.com/agriyakhetarpal/PyBaMM/actions/runs/8950718520/job/24586326296
https://github.com/pybamm-team/casadi-vcpkg-registry has been updated and the baseline has been updated accordingly.
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[ ] No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[x] All tests pass: $ python run-tests.py --all (or $ nox -s tests)
[ ] The documentation builds: $ python run-tests.py --doctest (or $ nox -s doctests)

You can run integration tests, unit tests, and doctests together at once, using $ python run-tests.py --quick (or $ nox -s quick).
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

#3783 is a tricky bug with an easy workaround-like, and requires repairing the wheel – it would be better to keep that separately tracked. This PR is ready for review and merging.

#3783 requires repairing the wheel – it would be better to keep that separately tracked as it is now. This PR is ready for review and merging, since CasADi is getting compiled successfully.

Thanks @agriyakhetarpal.

authors: agriyakhetarpal arjxn-py


text:
ImportError: cannot import name expm2

Hi ! When I try to use the pybrain on python2, I got the error:
"ImportError: cannot import name expm2"
In this thread:
https://stackoverflow.com/questions/46744105/running-neural-network-pybrain#comment80435446_46744164
They say that it's because the the deprecated functions "expm2" and "expm3" have been removed from scipy.linalg.
I'm using SciPy version 1.0.0, and I can't install a more old version of scipy...
There're any plans for now to fix this in pybrain to work with the current version of scipy ??

Making the changes in the pull referenced above (expm2 => expm #229 ) seemed to solve the error for me

authors: UsaidPro fabiovix

repo: pybrain/pybrain


text:
Improved Documentation

It'd be great to improve documentation, especially for the public types listed here.
I think this will pair well with the architecture docs improvement in pydantic, see this issue.

Hi @sydney-runkle
I've been delving into rust for a while and would love to contribute a bit to this project.
Before submitting a PR, I would love to clarify that my understanding of these errors is correct. Let's consider PydanticCustomError.
As I understand it, PydanticCustomError is a custom error type that allows users to define their error types and messages during validation. It's part of the ValidationError system and can be used to create domain-specific error messages.
A simple example would be raising PydanticCustomError inside a custom validator:
from pydantic_core import SchemaValidator, ValidationError, PydanticCustomError

def custom_validator(value):
    if value < 0:
        raise PydanticCustomError(
            'negative_number',
            'Number must be positive, got {number}',
            {'number': value}
        )
    return value

schema = {
    'type': 'function-plain',
    'function': custom_validator,
    'schema': {'type': 'int'}
}

validator = SchemaValidator(schema)

try:
    validator.validate_python(-5)
except ValidationError as e:
    print(e)

If all this interpretation is correct, a good start for documenting the error might be:
@final
class PydanticCustomError(ValueError):
    """
    `PydanticCustomError` is a custom exception class that can be used to create specific error types
    with custom messages during validation in pydantic-core.
    """

    def __new__(
        cls, error_type: LiteralString, message_template: LiteralString, context: dict[str, Any] | None = None
    ) -> Self:
        """
        Create a new PydanticCustomError instance.

        Arguments:
            error_type: A string identifier for the type of error.
            message_template: A template string for the error message, which can include placeholders.
            context: An optional dictionary containing context information for the error.
        """
       # rest of the class definition...

I would replicate the documentation style of the ValidationError.

To summarize: Is this understanding correct? Thanks!

@sydney-runkle nvm, I just realized PR #1420 addresses this issue

@AdolfoVillalobos, yes - your understanding here is correct! Indeed, we already have a PR up to address this issue, but would certainly welcome your help on others!! :)

authors: AdolfoVillalobos sydney-runkle

repo: pydantic/pydantic-core


text:
🔥 Remove Hypothesis plugin for now

Fix pydantic/pydantic#5690

it's the code in pydantic that needs removing.

authors: lig samuelcolvin


text:
Use PDM for lockfiles & env management

This replaces our scripted together requirements management with PDM. Our current system has several limitations and can lead to upsies (see https://github.com/pydantic/pydantic/commit/fb2944808b2b216307fccd5babf11c44bfed55eb#diff-3362b72813f83c18d0f1be4e6039d1a1ddc4e16b1324c2a82700d74b990011f9).
I chose PDM because it can work with hatchling as the build backend, which minimizes the number of things that need to change in this PR (vs. something like Poetry which would require a lot more churn).
Selected Reviewer: @samuelcolvin

Okay I looked at the docs page for PDM and it looks pretty well-thought-out. I do think it's a good idea to rework the dependency management stuff, given the "upsies" lol

I'll say that while PDM seems well thought out, it is opinionated and seems to favor correctness over user friendliness. The docs are also not great in my opinion, they tell you an option exists but not how to use it or what it really means. Anyhow, it works.

please review

I also think there's something to be said for using a single tool (PDM?) for managing both the build backend, publishing and dependencies/lockfiles.

In principle I'm good with this - nice to have a solution to the requirements mess.
Can we update the contributions section to explain how to use this.
I'll try this out today.

authors: adriangb dmontagu samuelcolvin

repo: pydantic/pydantic


text:
Move errors docs to top nav

Moves the Errors docs heading to header navigation as Error Messages.
Also adds Encoded types to the navigation
Change Summary

Related issue number

Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[ ] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

please review


text:
DOC: cython example from docs is not working in Windows

The last example in the "Enhancing performance" docs on cython (http://pandas.pydata.org/pandas-docs/dev/enhancingperf.html#more-advanced-techniques) is failing on Windows.
When I run the example I get a ValueError: Buffer dtype mismatch, expected 'Py_ssize_t' but got 'long' error:
In [18]: %timeit apply_integrate_f_wrap(df['a'].values, df['b'].values, df['N'].values)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-18-1222be30cf93> in <module>()
----> 1 get_ipython().magic(u"timeit apply_integrate_f_wrap(df['a'].values, df['b'].values, df['N'].values)")

c:\users\vdbosscj\scipy\ipython\IPython\core\interactiveshell.pyc in magic(self, arg_s)
   2184         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2185         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2186         return self.run_line_magic(magic_name, magic_arg_s)
   2187
   2188     #-------------------------------------------------------------------------

c:\users\vdbosscj\scipy\ipython\IPython\core\interactiveshell.pyc in run_line_magic(self, magic_name, line)
   2105                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2106             with self.builtin_trap:
-> 2107                 result = fn(*args,**kwargs)
   2108             return result
   2109

c:\users\vdbosscj\scipy\ipython\IPython\core\magics\execution.pyc in timeit(self, line, cell)

c:\users\vdbosscj\scipy\ipython\IPython\core\magic.pyc in <lambda>(f, *a, **k)
    191     # but it's overkill for just that one bit of state.
    192     def magic_deco(arg):
--> 193         call = lambda f, *a, **k: f(*a, **k)
    194
    195         if callable(arg):

c:\users\vdbosscj\scipy\ipython\IPython\core\magics\execution.pyc in timeit(self, line, cell)
   1011             number = 1
   1012             for _ in range(1, 10):
-> 1013                 if timer.timeit(number) >= 0.2:
   1014                     break
   1015                 number *= 10

C:\Anaconda\envs\devel\lib\timeit.pyc in timeit(self, number)
    193         gc.disable()
    194         try:
--> 195             timing = self.inner(it, self.timer)
    196         finally:
    197             if gcold:

<magic-timeit> in inner(_it, _timer)

C:\Users\vdbosscj\.ipython\cython\_cython_magic_fa1038e4eeefba896480cf749d6fc60d.pyd in _cython_magic_fa1038e4eeefba896480cf749d6fc60d.apply_integrate_f_wrap (C:\Users\vdbosscj\.ipython\cython\_cython_magic_fa1038e4eeefba896480cf749d6fc60d.c:1762)()

ValueError: Buffer dtype mismatch, expected 'Py_ssize_t' but got 'long'

closing as stale. pls reopen if still an issue.

Yes, it still fails, but I will do a PR to fix it.

authors: jorisvandenbossche jreback

repo: pydata/pandas


text:
False negative on .equals() after read_hdf()

I have strange results from .equals appearing when DataFrame is written to HDF Store and then read back:
import pandas as pd
df = pd.DataFrame({'B':[1,2], 'A':[str('x'), str('y')]})  # str() - just to be sure this is not linked to unicode
print 'df:'
print df
df.to_hdf('hdf_file', 'key', format='t', mode='w')
df_out = pd.read_hdf('hdf_file', 'key')
print '\ndf_out:'
print df_out
print '\ndf equals df_out:', df.equals(df_out)
print '\ndf_out equals df:', df_out.equals(df)
print '\ndf.shape == df_out.shape:', df.shape == df_out.shape
print '\narray_equivalent(df.values, df_out.values):', pd.core.common.array_equivalent(df.values, df_out.values)
print '\ndf.index equals df_out.index:', df.index.equals(df_out.index)
print '\ndf.columns equals df_out.columns:', df.columns.equals(df_out.columns)
for col in df.columns:
	print '\ndf.{0} equals df_out.{0}: {1}'.format(col, df[col].equals(df_out[col]))

output:
df:
   A  B
0  x  1
1  y  2

df_out:
   A  B
0  x  1
1  y  2

df equals df_out: False

df_out equals df: False

df.shape == df_out.shape: True

array_equivalent(df.values, df_out.values): True

df.index equals df_out.index: True

df.columns equals df_out.columns: True

df.A equals df_out.A: True

df.B equals df_out.B: True

The interesting thing is that if DataFrame is initialized with different columns "order" in the dictionary the results are ALL True (i.e. correct):
df = pd.DataFrame({'A':[1,2], 'B':[str('x'),str('y')]})  # in the code above

will give:
df equals df_out: True
df_out equals df: True

I have seen similar issues (#8437 and #7605), which are marked as closed, but seeing this strange results... might be something different?
python 2.7.9, pandas 0.15.2
My apologies in advance for potential duplicate.

@jreback is the block-type order part of the pandas data model? As in should IntBlock always come before ObjectBlock in the blocks tuple. If so, maybe the ordering should be enforced in consolidation.

ordering / consolidation is an impl detail only and does not impact equals

It also seems that only 'table' format is affected, because with format='fixed' there is no such issue.

cc @unutbu
I think this might be a bug/undefined situation. The equals comparator in core/internals.py should compare like blocks in order. But since their is no explicity guarantee of ordering in the consolidation this may be somewhat undefined.

The order of writing blocks in hdf is arbitrary when data_columns is not fully specified, e.g. in the example above if df.to_hdf(....., data_columns=True). Then the columns are written individually and thus the order is preserved. When data_columns is not or underspecified then the blocks are iterated, but  their is not a well-defined order.
So could do one of the following:

doc that equals is subject to block creation/consolidation order
have hdf iterate on blocks in a well defined order (not sure how to do this nicely though)
have equals try harder to compare blocks that are potentially in a different order (but this could still fail as the order within a block is subject to the order they are added)

Note that this bug can affect data frames that have nothing to do with HDF — simply taking a data frame, doing a few rotations on its columns, and sticking it back together can result in an (invisible) change to the order in which its blocks are listed in _data and thus lead .equals() to return False despite == returning only True values. An example:
csv_text = """\
Title,Year,Director
North by Northwest,1959,Alfred Hitchcock
Notorious,1946,Alfred Hitchcock
The Philadelphia Story,1940,George Cukor
To Catch a Thief,1955,Alfred Hitchcock
His Girl Friday,1940,Howard Hawks
"""

import pandas as pd

df1 = pd.read_csv('sample.csv')
df1.columns = map(str.lower, df1.columns)
print(df1)
print()

df2 = df1.groupby(['director', df1.index]).first()
df3 = df2.reset_index('director')
df4 = df3[['title', 'year', 'director']]
df5 = df4.sort_index()
print(df5)
print()

print(df1 == df5)
print()

print(df1.equals(df5))

results in:
                    title  year          director
0      North by Northwest  1959  Alfred Hitchcock
1               Notorious  1946  Alfred Hitchcock
2  The Philadelphia Story  1940      George Cukor
3        To Catch a Thief  1955  Alfred Hitchcock
4         His Girl Friday  1940      Howard Hawks

                    title  year          director
0      North by Northwest  1959  Alfred Hitchcock
1               Notorious  1946  Alfred Hitchcock
2  The Philadelphia Story  1940      George Cukor
3        To Catch a Thief  1955  Alfred Hitchcock
4         His Girl Friday  1940      Howard Hawks

  title  year director
0  True  True     True
1  True  True     True
2  True  True     True
3  True  True     True
4  True  True     True

False

It should probably be the responsibility of .equals() to ignore the block order, since block order is not part of its definition.

Just as a UI issue, I think DataFrame.equals shouldn't care at all about any of this behind-the-scenes stuff.  If that means we replace it entirely with something which doesn't care -- something which checks index, columns, and data (with nan==nan) -- then so be it.

this is pretty easy to fix, just consolidate then sort the blocks (on the block dtype) and then compare

Yeah, I was thinking of something like
        # canonicalize block order
        self_blocks = sorted(self.blocks, key=lambda x: x.dtype)
        other_blocks = sorted(other.blocks, key=lambda x: x.dtype)
        return all(block.equals(oblock) for block, oblock in
                   zip(self_blocks, other_blocks))

since it's already consolidating.

closed by #9745

authors: brandon-rhodes dalejung dsm054 jreback wikiped


text:
BUG: fix Panel.fillna() ignoring axis parameter (re-submission)

closes #3570
closes #8251
This is a re-submission of PR #8395 and addresses issue #8251. My apologies for the duplicate PR, but despite rebasing to pydata/pandas master, the original PR would not update with my new commits and I couldn't get rid of the LooseVersion() errors in the Travis build.
This PR may need some fleshing out still, but I wanted to submit this to see what the thoughts are on this approach. For this PR I've created a new interpolation mechanism at the block level to implement filling across 3 or more dimensions. This avoids the fiddly problems of trying to implement filling of 3+ dimensions at the frame level. However, it isn't possible with this technique to fill across blocks of different dtypes, although that seems like that should be a rare occurrence.
Incidentally, this will also address #3570, which is one of the issues referenced in #9862.

I merged the previous interpolate_2d() and interpolate_nd() functions into a single function and then renamed it simply pad(). I renamed interpolated_1d() to simply interpolate().
Looking through the code, I see a number of places where the terms "pad", "fill", and "interpolate" are used semi-interchangably and with different meanings. I think it would clear things up if, at least internally, these terms had these fixed definitions:
fill: fill in missing values with a static value
pad: fill in missing values with the most recent non-missing value
interpolate: interpolate in the scipy.interpolate sense
I'm not suggesting any changes to the public API, but I would be willing to work on a new PR to try and makes things internally consistent. I don't want to confuse this PR by trying to roll it in here.
In any event, this fix seems to work OK. Not sure if it needs more documentation other than mention of bugs fixed in whatsnew.

updated

Implemented most of the suggestions - just need clarification on what is meant by about the ndims being the same.

@stahlous do you want to rebase / update. fyi, you might want to squash as well.

I squashed the commits. Sorry for the delay - had other things going on the past couple weeks. Can you take a look and let me know if I've addressed everything?

closing, we are going to deprecate Panel in 0.18.0

authors: jreback stahlous


text:
Remove macos 13

It keeps failing as brew cannot install graphviz without also installing python 3.12 which conflict with the existing python install when linking 2to3.
I don't think it is worth testing this on that many macos and linux platform, as it's mostly a theme, so the risk of having a production system fail because of a bug on macos is low.

Thanks, that was fast !

repo: pydata/pydata-sphinx-theme


text:
Django configuration docs

Since I struggled a bit with configuring persistence in Django, I was considering submitting a pull request to improve the documentation for Django integration. I found that if you create an Application object directly in a view or other file in the Django app, the migrations may not be executed yet, which can cause issues. However, I think I figured out the correct way to set it up so that these issues can be avoided.
Let me know if you want PR about this.

Hey @zgelp! Thanks for raising the issue. Yes it would be great to see what you're thinking about this. Please do submit a PR. I'm looking forward to talking about this with you.

@bibz might also be interested in this :)

Hey @johnbywater , I opened a #17 , I don't know if this is the proper and "Django" way of solving it, but it works on the CI/CD gitlab pipeline and test pass. Feel free to improve or comment how to improve it, if there's any.

Thank you very much! I am away at the moment but will definitely get back about this soon. Django is being used on one project I am currently involved in, so I will also share what you have done there. Maybe @bibz has some thoughts about this too.

Hey @zgelp,
We evolved from a home-grown message driven system to using eventsourcing and so we did things a bit differently.
In short the initiation was tied to the WSGI configuration wsgi.py, with a manual instantiation needed for tests or in Django commands.
Could you not use the approach we use in the test suite here?
It's basically what you did in your PR but without calling migrate in app_ready. I fear that is not a Django best practice at all since running migrations should be a manual operation at the user's discretion.
Did you maybe forget to depend on ("eventsourcing_django, "0001_initial") in your Django app migration?
(That is clearly a detail we could add to the documentation.)

authors: bibz johnbywater zgelp

repo: pyeventsourcing/eventsourcing-django


text:
FPS drops by 30-50% when enabling fullscreen on Raspberry Pi 4 on Raspberry Pi OS Bullseye over VNC

Python: 3.9.2
Pyglet: 1.5.21
RAM: 4GB
Display driver: vc4-fkms-v3d
GPU Mem: 256M
When switching to fullscreen on an RPI4 connected over VNC, FPS drops from around 40 down to 20 or 10. The following code reliably produces this
import pyglet

lbl = pyglet.text.Label('FPS: ',
  font_name='Monospace Regular',
  font_size=14,
  x=10, y=1000)

window = pyglet.window.Window(1920,1080, fullscreen=False)

# Listen for keyboard input events from pyglet
@window.event
def on_text(text) :
  window.set_fullscreen(not window.fullscreen)

@window.event
def on_draw() :
  window.clear()

  lbl.draw()

def update_lbl(dt) :
  lbl.text = "FPS: %.2f" % round(pyglet.clock.get_fps(), 2)

pyglet.clock.schedule(update_lbl)

pyglet.app.run()

I have updated this code snippet to use the more appropriate FPSDisplay, and it is illustrating the same behavior. It also now displays dt illustrating that  there are fewer actual clock ticks happening in full screen than in windowed mode.
Also, to add clarity, the VNC display is set to 1920x1080, which is the same size as the window size, so it's not as though Pyglet is drawing a larger window in full screen
import pyglet

window = pyglet.window.Window(1920,1080, fullscreen=False)
fps_display = pyglet.window.FPSDisplay(window)
fps_display.label.y = 1040

lbl = pyglet.text.Label('DT: ',
  font_name='Monospace Regular',
  font_size=14,
  x=10, y=1000)

# Listen for keyboard input events from pyglet
@window.event
def on_text(text) :
  window.set_fullscreen(not window.fullscreen)

@window.event
def on_draw() :
  window.clear()
  lbl.draw()
  fps_display.draw()

def update_label(dt) :
  lbl.text = "DT: %f" % dt

pyglet.clock.schedule(update_label)

pyglet.app.run()

Please let me know if there is any further info I can provide or debugging I can assist with. The performance I am seeing is great in windowed mode, but too slow in full screen mode. It is a requirement for this app to run in full screen.

Hi,
As a first step, you should switch to clock.schedule_interval(...).  If the application is not GPU limited, then using clock.schedule will choke the CPU and could cause issues with input handling.
Before trying anything remote, I would make that change and then get a baseline with a monitor plugged in.
Regarding VNC, it's difficult to say what the issue might be. Actual network performance of 10-20fps doesn't sound too unusual for VNC - it's just not that fast at streaming over the network, especially at 1080p.
I would guess that when entering fullscreen, that the display refresh rate on the Pi is being locked to the VNC server. This might be something that can be configured on your VNC server, but i'm not sure. Disabling vsync may have some effect, if this is the case.
As a workaround, you could try doing a borderless Window, with the same size as your desktop resolution:
Window(width=1920, height=1080, style=Window.WINDOW_STYLE_BORDERLESS)

This can work well, if your desktop environment can be hidden.

Hi,
I can confirm that performance returns to normal when disconnected from VNC, so I will look to see what I can improve there. For what it's worth, setting style=Window.WINDOW_STYLE_BORDERLESS improved performance marginally over VNC but it is still slower than the default window.
Closing this as the issue is with VNC.

repo: pyglet/pyglet


text:
Pathological performance in "IRC logs" lexer with long strings of digits.

(Original issue 982 created by pbx on 2014-05-02T15:38:19.244818+00:00)
Long strings of digits rendered in "IRC logs" syntax take a very long time. Thanks to the time on the pygments.org demo I can see that adding a digit doubles the rendering time.
25 digits takes four seconds to render: http://pygments.org/demo/360167/
26 digits takes eight seconds to render: http://pygments.org/demo/360168/
...and so on, until you hit your server's timeout limit.
I just discovered this today. Haven't had a chance to look at the lexer code. (I'm assuming the problem is in the lexer code...)

(Original comment by jaingaurav2 on 2014-05-02T17:26:45.957267+00:00)
So the root cause seems to be the timestamp regex in the lexer. This is made worse by it being used in multiple regex expressions in the 'root' state.

(Original comment by pbx on 2014-05-04T23:25:41.460888+00:00)
Thanks for taking a look. Here's a link to the relevant part of the source. I'll try to find time in the next few weeks to take a whack at this (unless somebody beats me to it!)
https://bitbucket.org/birkenfeld/pygments-main/src/80ce5e/pygments/lexers/text.py#cl-376

(Original comment by jaingaurav2 on 2014-05-04T23:28:23.214722+00:00)
I tried a simple change to hoist the timestamp code into a different state which improved the performance by 4x. However that only delayed the inevitable. The real problem is the timestamp regex. I'd highly suggest starting with some unit tests that demonstrate the timestamp formats that are currently supported.

(Original comment by birkenfeld on 2014-10-07T13:21:26.638049+00:00)
Closes #982: fix pathological matching behavior for timestamps in IRC logs lexer
→ <<cset 1fc7f6f6b6fd>>

repo: pygments/pygments-migration-test


text:
colorformat: extend with ansi<name> ?

(Original issue 1183 created by Carreau on 2015-12-18T16:56:46.874519+00:00)
I'm looking around the Terminal256/TerminalFormatter,
and would like to use the Terminal256 to generate base ansi escape sequence for some specific style.
So I would like to define some style in the form:
    styles = {
        Token.type:     "#ansired",
...

Would a PR that would alter what is a valid color format be accepted ?
In particular I'm thinking of allowing a limited, whitelisted number of name for color,
for example from #ansiblack to #ansiwhite (potentially also allowing the aliases defined in pygments console, like teal, darkteal...).
I don't really care of the special format, I can adapt to whatever you guys like, I just want Term256 formatter to be able to know it should emit for some colors \x1b[3x;ym (x in [1-7]), instead of the \x1b[38;5;nm.
Does what I say make any sens or is clear enough, or should I try to re-explain better ?

(Original issue 1183 last updated on 2016-02-14T14:12:18.275325+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by birkenfeld on 2016-02-14T14:12:18.286442+00:00)
Closing in favor of pull request #531.


text:
Fix incorrect YAML key configuration in documentation

Summary
This PR fixes the incorrect example of key configuration in the pygmy YAML documentation (~/.pygmy.yml).
Changes

Updated the keys section to use the correct Path key for specifying SSH keys.

Reason
The current documentation incorrectly lists keys as a list of strings, which leads to errors like:
2 error(s) decoding:

'Keys[0]' expected a map, got 'string'
'Keys[1]' expected a map, got 'string'

Hey @hellonagi!
Thank you for taking the time to contribute! The documentation really does need some love!
I'm happy to proceed with merging this but I have one nit-pick.
Could you please change the yaml keys to not use capitalization?

Thank you for your feedback!
I updated the yaml keys to use lowercase.

authors: fubarhouse hellonagi

repo: pygmystack/pygmy


text:
New io

Adding prototype for NEW IO to main branch.

Pull Request Test Coverage Report for Build 5524702297

141 of 187 (75.4%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.8%) to 61.055%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pynapple/io/misc.py
13
14
92.86%

pynapple/io/file.py
48
58
82.76%

pynapple/io/folder.py
79
114
69.3%

Totals

Change from base Build 5413439138:
0.8%

Covered Lines:
1800

Relevant Lines:
2861

💛  - Coveralls

authors: coveralls gviejo

repo: pynapple-org/pynapple


text:
pc run failed - because bun's upgrading is not work from installation.

Describe the bug
A clear and concise description of what the bug is.
In constants.py, we have
BUN_PATH = "$HOME/.bun/bin/bun"
INSTALL_BUN = "curl -fsSL https://bun.sh/install | bash -s -- bun-v0.5.9"

In pynecone/utils/prerequisites.py, we have
def install_bun():
    """Install bun onto the user's system.
    Raises:
        FileNotFoundError: If the required packages are not installed.
    """
    # Bun is not supported on Windows.
    if platform.system() == "Windows":
        console.log("Skipping bun installation on Windows.")
        return

    # Only install if bun is not already installed.
    if not os.path.exists(get_package_manager()):
        console.log("Installing bun...")

        # Check if curl is installed
        curl_path = path_ops.which("curl")
        if curl_path is None:
            raise FileNotFoundError("Pynecone requires curl to be installed.")

        # Check if unzip is installed
        unzip_path = path_ops.which("unzip")
        if unzip_path is None:
            raise FileNotFoundError("Pynecone requires unzip to be installed.")

        os.system(constants.INSTALL_BUN)

When the user calls pc init, the INSTALL_BUN will be invoked.
This installation will not automatically replace the old version, and the good thing is to avoid downloading again.
The pynecone application developer doesn't need to know what bun version they use.
If we change the bun version for fitting new pynecone, they will upgrade their pynecone package and then
find out pc run will get failed.
After my testing, the INSTALL_BUN can work well on my mac, we can replace any bun version by the command
https://github.com/pynecone-io/pynecone/pull/494
But the only issue of the logic is this logic condition
    if not os.path.exists(get_package_manager()):

it check this path to decide updating bun or not.
If you ever install pynecone install from 2023 Feb 10
Then you can check ~/.bun/bin/bun --version to see what bun version you have
And you can find out the bun version is old.
To Reproduce
Steps to reproduce the behavior:

Code/Link to Repo:

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
** Specifics (please complete the following information):**

Python Version: python 3.11
Pynecone Version: upgrading from old pynecone install from 2023 Feb 10  to 2023 Apr 24  version into 0.1.27
OS: Mac OS X
Browser (Optional): Chrome

Additional context
Add any other context about the problem here.

I see ok will look into making a new command which will upgrade the install.

Thanks @Lendemor ~~~

@picklelo @Lendemor
My OS is Mac OS X
After testing on pynecone 0.1.29, it does not work.
https://github.com/pynecone-io/pynecone/pull/938#issuecomment-1539317877
So we may need to reopen this issue again.

repo: pynecone-io/pynecone