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

python3.10: bump version to 3.10.8. #7313

Merged
merged 3 commits into from
Dec 4, 2022
Merged

Conversation

OscarL
Copy link
Contributor

@OscarL OscarL commented Oct 21, 2022

  • Use "make altinstall".
  • Documented problematic tests, and skipped the ones that hang/stall.
  • Enable optimizations.
  • Added a note regarding tests that invoke the crash dialog.

Running "hp --test python310" now gives the same results[*] for both non-optimized, and optimized builds, so let's just enable optimizations for 3.10.8.

[*] As there's some randomness involved in the test runs, YMMV.

Anecdotal/additional info:

Building and testing with "--disable-test-modules" might be considered? Python's docs read:

"The test package is meant for internal use by Python only."

And that those are used for regression testing mostly. See: https://docs.python.org/3/library/test.html#module-test

Personal experience: I got more consistent results with that flag enabled, than without it. I left it out, trying to avoid hiding problems (a.k.a.: failing silently. A big NO-NO in QA/QC), and because I assume that packaging Python counts as "internal use".

Typos on the commit message might or might not be addressed on follow up commits :-P

@OscarL
Copy link
Contributor Author

OscarL commented Oct 21, 2022

I can patch the tests that require several GBs of free space in a follow up commit on this PR, to mimic Win and MacOSX behaviour (instead of just removing the tests). Edit: DONE.

Test runs with or without "--enable-optimizations" do not show noticeable changes in runtime, at least on my PC, and with the Python test cases, anyway.

I don't have enough experience on non I/O bound loads to judge performance issues.

@OscarL OscarL changed the title python310: bump revision to 3.10.8. python310: bump version to 3.10.8. Oct 21, 2022
* Use "make altinstall".
* Documented problematic tests, and skipped the ones that hang/stall.
* Enable optimizations.
* Added a note regarding tests that invoke the crash dialog.

Running "hp --test python310" now gives the same results[*] for both
non-optimized, and optimized builds, so let's just enable
optimizations for 3.10.8.

[*] As there's some randomness involved in the test runs, YMMV.

Anecdotal/aditional info:

Building and testing with "--disable-test-modules" might be
considered? Python's docs read:

   "The test package is meant for internal use by Python only."

And that those are used for regression testing mostly. See:
https://docs.python.org/3/library/test.html#module-test

Personal experience: I got more consistent results with that flag
enabled, than witout it. I left it out, trying to avoid hiding
problems (a.k.a.: failing silently. A big NO-NO in QA/QC), and
because I assume that packaging Python counts as "internal use".
They now behave like on Windows or MacOSX, requiring to be enabled
by the use of the "largefile" resource usage flag.
@OscarL OscarL changed the title python310: bump version to 3.10.8. python3.10: bump version to 3.10.8. Nov 6, 2022
@Begasus
Copy link
Contributor

Begasus commented Nov 11, 2022

GLOBAL_WRITABLE_FILES should be moved up before PROVIDES (see: https://github.com/haikuports/haikuports/wiki/HaikuPorter-Guidelines#ordering)
Probably a remain from early recipes.

@OscarL
Copy link
Contributor Author

OscarL commented Nov 11, 2022

GLOBAL_WRITABLE_FILES should be moved up before PROVIDES

Will do, thanks.

Maybe Haikuporter's strict mode should auto-check this and report an error, no? Just noticed that lint-new-recipes.sh that gets run here for new PRs calls haikuporter --lint, so I guess that's where this check should be.

(adding that to the ToDo list :-D)

@pulkomandy
Copy link
Member

pulkomandy commented Nov 11, 2022 via email

@OscarL
Copy link
Contributor Author

OscarL commented Nov 11, 2022

Thanks for the pointers @pulkomandy!

From Libsolv's repo_haiku.cpp:

// TODO: Check whether freshens and replaces does indeed work as intended

Heh :-)


It seems "replaces" is basically a synonymous of "obsoletes" on libsolv's docs and code. And most of the "obsoletes" mentions seem to be regarding which packages should be uninstalled (as PulkoMandy schooled me about).

But then there's bits like this:

POOL_FLAG_NOINSTALLEDOBSOLETES

New versions of rpm consider the obsoletes of installed packages when checking for dependency,
thus you may not install a package that is obsoleted by some other installed package, unless you
also erase the other package.

That seem kinda like a "don't install X, because Y already provides that" to me. But I don't know how relevant is that to Haiku (considering the RPM mention).

(I tried following the trails of ->obsoletes through libsolv's code, but got lost pretty fast :-P)

I guess at some point I should try to come up with some ".hpkg" test-cases, and see what's what.

As that will take me a while... I guess I'll follow @Begasus suggestion for this recipe, unless someone else objects.

Thanks.

This matches the rename of python3 to python3.7, and the similar
change for Python 3.9.

Renamed patchset files to match the recipe naming.

Sorted sections according to the Haikuporter Guidelines.
@OscarL
Copy link
Contributor Author

OscarL commented Nov 11, 2022

Latest push addresses Begasus' suggestions. Built & tested on both 32 and 64 bits (hrev56578+10).

The "TEST" section got pretty verbose, but at some point that will come in handy when trying to address some of the remaining issues with this port.

I still get some occasional "random" hangs running hp --test python3.10 (on test_subprocess, for example, sometimes only after its re-run), but repeatable test runs are now more attainable than before :-D

@Begasus Begasus merged commit 08152db into haikuports:master Dec 4, 2022
@OscarL OscarL deleted the python310-bump branch December 4, 2022 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants