Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tools: Enable Python bridge on Fedora 38 #19009

Merged
merged 1 commit into from
Jul 17, 2023

Conversation

martinpitt
Copy link
Member

@martinpitt martinpitt commented Jun 25, 2023

After this, we can remove the fedora-38/pybridge scenario.

Move to Python bridge in Fedora 38 and CentOS Stream 9

The rewritten Python bridge that was introduced in Cockpit 294 gets enabled on Fedora 38 and CentOS Stream 9. Please let us know if you run into any trouble!

@martinpitt martinpitt marked this pull request as draft June 25, 2023 09:13
@martinpitt martinpitt changed the title tools: Enable Python bridge on Fedora 38 and CentOS/RHEL 9 tools: Enable Python bridge on Fedora 38 Jun 25, 2023
@martinpitt
Copy link
Member Author

Oh, this is interesting -- it also enables the pybridge on Fedora CoreOS, which apparently needs some work.

@martinpitt martinpitt added the blocked Don't land until something else happens first (see task list) label Jun 26, 2023
@martinpitt martinpitt removed the blocked Don't land until something else happens first (see task list) label Jun 26, 2023
@martinpitt
Copy link
Member Author

martinpitt commented Jun 26, 2023

Could you please do an initial review of this? I think I want to clean up the "memory eater" commit more, but I'd appreciate @allisonkarlitskaya 's gut feeling/judgement about that.

Also, @mvollmer, I suppose there was some particular reason for the init name of the superuser? Can you please have an initial look?

Thanks!

pyproject.toml Outdated Show resolved Hide resolved
src/cockpit/packages.py Outdated Show resolved Hide resolved
src/cockpit/superuser.py Outdated Show resolved Hide resolved
@martinpitt martinpitt force-pushed the pybridge-enable branch 2 times, most recently from 1769f28 to e130840 Compare June 26, 2023 12:43
@@ -317,11 +319,13 @@ def get_content_security_policy(self, origin):
def serve_file(self, path, channel):
if path == 'po.js':
# We do locale-dependent lookup only for /po.js. This always succeeds.
# Keep the file in memory for efficient lookups and manifests.js processing
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like this makes the types here unnecessarily complicated now. It would probably be fine to go all the way and drop the translations from memory as well.

src/cockpit/superuser.py Outdated Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
src/cockpit/packages.py Outdated Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
src/cockpit/packages.py Outdated Show resolved Hide resolved
@martinpitt martinpitt added blocked Don't land until something else happens first (see task list) no-test For doc/workflow changes, or experiments which don't need a full CI run, labels Jun 26, 2023
@martinpitt martinpitt added the pybridge Python Bridge label Jun 27, 2023
@martinpitt

This comment was marked as resolved.

@martinpitt martinpitt removed the blocked Don't land until something else happens first (see task list) label Jun 28, 2023
@martinpitt martinpitt force-pushed the pybridge-enable branch 2 times, most recently from 48401d9 to 57cc038 Compare June 28, 2023 08:19
@martinpitt
Copy link
Member Author

Fixed the conflict and dropped the memory saver patch for now. This will most probably fail the /devel scenario again, but let's make sure everything else still works.

@martinpitt martinpitt added no-test For doc/workflow changes, or experiments which don't need a full CI run, and removed no-test For doc/workflow changes, or experiments which don't need a full CI run, labels Jul 13, 2023
@martinpitt martinpitt removed the request for review from mvollmer July 13, 2023 05:48
@martinpitt
Copy link
Member Author

The test actually looks a lot better now, as commit 1e191f9 already removed half of the RAM usage.

So my proposal is to work around that by giving the provisioned machine a bit more memory than 512 MiB in the devel scenario. This shouldn't be a big practical problem as real users are going to use the small production version of the pages. That would allow us to get some more field testing. @allisonkarlitskaya what is your gut feeling, should we still block this on your packages.py rework, or are you okay with unleashing it with the next release in two weeks?

@martinpitt martinpitt removed the blocked Don't land until something else happens first (see task list) label Jul 13, 2023
@allisonkarlitskaya
Copy link
Member

Give me another day on the packaging rework (and maybe start initially reviewing). It's not far now.

@martinpitt martinpitt marked this pull request as ready for review July 13, 2023 08:39
@martinpitt martinpitt added blocked Don't land until something else happens first (see task list) release-blocker Targetted for next release labels Jul 17, 2023
@martinpitt martinpitt added no-test For doc/workflow changes, or experiments which don't need a full CI run, and removed blocked Don't land until something else happens first (see task list) labels Jul 17, 2023
Copy link
Member

@allisonkarlitskaya allisonkarlitskaya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@allisonkarlitskaya
Copy link
Member

https://cockpit-logs.us-east-1.linodeobjects.com/pull-19009-20230717-150704-dacb340a-fedora-38-other/pixeldiff.html#TestHistoryMetrics-testEvents-metrics-history-expanded-hour-dark

Fascinating!!

The python bridge changes pixels in a way that we otherwise didn't notice from the integration tests yet. This definitely needs looking into.

@allisonkarlitskaya allisonkarlitskaya dismissed their stale review July 17, 2023 15:59

broken pixel tests

@martinpitt
Copy link
Member Author

We've been running pixel tests on /pybridge for a while now, to spot exactly such causes; but it happens with the C bridge as well. This is a known flake, retrying.

Copy link
Member

@allisonkarlitskaya allisonkarlitskaya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a known flake, retrying.

aww too bad :)

+1, then.

@martinpitt martinpitt merged commit 86510f8 into cockpit-project:main Jul 17, 2023
29 of 30 checks passed
@martinpitt martinpitt deleted the pybridge-enable branch July 17, 2023 16:58
martinpitt added a commit to martinpitt/bots that referenced this pull request Jul 18, 2023
cockpit-project/cockpit#19009 switched Fedora 38
to the pybridge for the "regular" build.

Still keep the pybridge scenario for the other projects, until cockpit
with the above PR got released and the fedora-38 image refreshed with
it.
martinpitt added a commit to cockpit-project/bots that referenced this pull request Jul 18, 2023
cockpit-project/cockpit#19009 switched Fedora 38
to the pybridge for the "regular" build.

Still keep the pybridge scenario for the other projects, until cockpit
with the above PR got released and the fedora-38 image refreshed with
it.
@jelly jelly removed the release-note label Aug 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-test For doc/workflow changes, or experiments which don't need a full CI run, pybridge Python Bridge release-blocker Targetted for next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants