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

GHA: Test MSYS2/CLANG64 #6888

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Open

GHA: Test MSYS2/CLANG64 #6888

wants to merge 15 commits into from

Conversation

nulano
Copy link
Contributor

@nulano nulano commented Jan 13, 2023

MSYS2 now has more environments: https://www.msys2.org/docs/environments/

Changes proposed in this pull request:

@nulano

This comment was marked as outdated.

@radarhere
Copy link
Member

I've rerun the tests, and they've passed now.

@hugovk
Copy link
Member

hugovk commented Jan 13, 2023

Thank you for this PR!

What's the benefit in adding all of these environments?

Our build matrix is pretty big right now, so let's be careful not to make it too much bigger.

This increases the test jobs in this worfklow from 2 to 5, and total duration from ~12 to ~21 mins:

image image

That's on top of 61 checks at the moment (mostly but not all GHA), taking about 184 mins of GHA time (wall-clock time maybe about an hour?).

For example, we aren't testing the GHA macOS/Ubuntu jobs with both architectures, and we will need to add some 3.12-dev coverage soonish.

Not opposed to this PR, and I'm very much for increasing test coverage, but let's keep an eye on things so they stay manageable :)

.github/workflows/test-msys2.yml Outdated Show resolved Hide resolved
.github/workflows/test-msys2.yml Outdated Show resolved Hide resolved
docs/installation.rst Outdated Show resolved Hide resolved
@kmilos
Copy link
Contributor

kmilos commented Jan 23, 2023

IMHO testing MINGW64 (GCC toolchain w/ legacy MSVCRT) and CLANG64 (LLVM toolchain w/ modern UCRT) should provide decent coverage if one is trying to reduce the number of jobs. There's little point in testing 32-bit, support for it is being phased out anyway...

@nulano nulano changed the title GHA: Test new MSYS2 environments GHA: Test MSYS2/CLANG64 Feb 2, 2023
@nulano
Copy link
Contributor Author

nulano commented Feb 2, 2023

I've had a hardware issue preventing me from working on this until now...

What's the benefit in adding all of these environments?

I was going to suggest something similar to @kmilos's comment.

I've now updated the test matrix to (and listed the others in a comment):

  • CLANG64 instead of MINGW32
  • MINGW64

@kmilos
Copy link
Contributor

kmilos commented Feb 2, 2023

Any particular reason for not using the setup-msys2 action and all this extra manual work?

@nulano
Copy link
Contributor Author

nulano commented Feb 2, 2023

IIRC this was made before the setup-msys2 action, and it seems like less work to just update it as is instead of switching to the setup-msys2 action.

@kmilos
Copy link
Contributor

kmilos commented Feb 2, 2023

I think you'll find switching will pay off when it comes to flexibility and long term maintanance of these jobs.

I might be able to help with this when I find some time.

mingw-w64-x86_64-python3 \
mingw-w64-x86_64-python3-pip \
mingw-w64-x86_64-python3-setuptools
mingw-w64-ucrt-x86_64-gcc \
Copy link
Contributor

Choose a reason for hiding this comment

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

In order to cover the CLANG env, this should not be verbatim "gcc". There is a generic "cc" metapackage that will pull in either "gcc" or "clang" as needed.

- ``mingw-w64-clang-x86_64``
* - **MINGW64**
- ``mingw-w64-x86_64``

Copy link
Contributor

Choose a reason for hiding this comment

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

Please add CLANGARM64 as well?

* - **MINGW64**
- ``mingw-w64-x86_64``

Installing in **MSYS2 MSYS** is not supported.

Make sure you have Python and GCC installed::

pacman -S \
Copy link
Contributor

Choose a reason for hiding this comment

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

Might be an idea to add --needed to all pacman commands to avoid reinstallation...

* - **MINGW64**
- ``mingw-w64-x86_64``

Installing in **MSYS2 MSYS** is not supported.

Make sure you have Python and GCC installed::
Copy link
Contributor

Choose a reason for hiding this comment

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

"GCC" -> "a C compiler"


- name: Install dependencies
run: |
pacman -S --noconfirm \
Copy link
Contributor

Choose a reason for hiding this comment

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

Add --needed

pactoys \
subversion

pacboy -S --noconfirm \
Copy link
Contributor

Choose a reason for hiding this comment

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

Add --needed


pacboy -S --noconfirm \
freetype:p \
gcc:p \
Copy link
Contributor

Choose a reason for hiding this comment

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

"gcc" - > "cc"

python3-pip:p \
python-pyqt6:p

python3 -m pip install pyroma pytest pytest-cov pytest-timeout
Copy link
Contributor

Choose a reason for hiding this comment

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

pytest, pytest-cov, and pytest-timeout can be (preferably?) installed by pacboy above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants