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

Reused actions maintained by PyPA #47

Open
proppy opened this issue May 19, 2022 · 3 comments
Open

Reused actions maintained by PyPA #47

proppy opened this issue May 19, 2022 · 3 comments
Labels
Enhancement New feature or request Question Further information is requested

Comments

@proppy
Copy link

proppy commented May 19, 2022

The Python Packaging Authority is now maintaining two actions for building and publish wheels:

Did you consider reusing those?

@umarcor
Copy link
Member

umarcor commented May 20, 2022

As discussed in The-OpenROAD-Project/OpenROAD#1424, wrapping twine in a shell script which is executed in a Container Action is unnecessarily complex. In this context, https://github.com/pyTooling/Actions/blob/main/.github/workflows/PublishOnPyPI.yml#L70-L80 is equivalent to https://github.com/pypa/gh-action-pypi-publish/blob/master/twine-upload.sh#L51-L54, without building and spawning a container. Nevertheless, we can add the "VERIFY_METADATA" and "TWINE_EXTRA_ARGS" options if necessary. Do you have a use case for them?

With regard to cibuildwheel, honestly, I don't know what to do. We currently support three different build commands/procedures (https://github.com/pyTooling/Actions/blob/main/.github/workflows/Package.yml):

  • python -m build
  • python -m build --no-isolation
  • python setup.py

The first two are expected to be used in repositories containing a pyproject.toml, while the third one is for "backwards compatibility" (a requirements.txt file or a list of dependencies). Given the inconsistency in Python packaging (setup.py, setup.cfg, pyproject.toml, etc.) it was not easy to find a solution that suits the needs of the current users of pyTooling/Actions.

Is cibuildwheel a replacement for Package.yml which can handle those cases? Or, is the proposal to have cibuildwheel as a fourth alternative in workflow Package? If used as a replacement, the ExamplePipeline is designed so that any of the jobs can be replaced by an alternative implementation. For instance, in https://github.com/VHDL/pyVHDLModel/blob/main/.github/workflows/Pipeline.yml#L82 a custom "VerifyDocs" job is used.

@umarcor
Copy link
Member

umarcor commented May 20, 2022

Upon further thinking, all the consumers of pyTooling/Actions are Python-only packages. As far as I understand, in those cases a single wheel can be used regardless of platform (OS or version). That's why we had not considered multiple builds. @proppy do you have a use case that requires building multiple wheels?

@umarcor umarcor added Enhancement New feature or request Question Further information is requested labels May 20, 2022
@proppy
Copy link
Author

proppy commented May 23, 2022

yes The-OpenROAD-Project/OpenROAD#1424 would require to build wheels for a variety of architectures.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request Question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants