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

Publish task as a Python package #935

Closed
sisp opened this issue Nov 16, 2022 · 9 comments · Fixed by #1989
Closed

Publish task as a Python package #935

sisp opened this issue Nov 16, 2022 · 9 comments · Fixed by #1989
Labels
area: releasing Changes related to the release process.

Comments

@sisp
Copy link
Contributor

sisp commented Nov 16, 2022

I'd love to use task as the task runner in a Python project without requiring developers to install task manually. In my opinion, it is much better to use task over the plethora of language-specific task runners because it tends to be more feature-rich than many alternatives (as far as I can tell) and can be used for projects independent of their programming languages across all major operating systems without requiring a runtime (like the Python interpreter) thanks to the compiled Go binaries. I'd hope that task would gain further adoption with additional language-native packages and development efforts would focus on this project rather than being scattered across the language-specific alternatives.

I believe a Python package could be created quite easily with some inspiration from the following projects:

Would you be open to accepting a contribution that adds support for publishing a Python package?

Related to #870.

@github-actions github-actions bot added the state: needs triage Waiting to be triaged by a maintainer. label Nov 16, 2022
@andreynering andreynering added area: releasing Changes related to the release process. and removed state: needs triage Waiting to be triaged by a maintainer. labels Nov 16, 2022
@andreynering
Copy link
Member

Hi @sisp,

I have zero experience with the Python world, so to even consider doing this I need some guidance from the community.

npm was easy because I'm more familiar with the JS world and the process was relative straightforward.

For anyone that would use this, please add your 👍 so we know how many would really use this.

@retr0h
Copy link

retr0h commented Dec 3, 2022

hi @andreynering @sisp I could help with this if interested. Would likely utilize poetry as the mechanism for publishing the package.

@sisp
Copy link
Contributor Author

sisp commented Dec 3, 2022

@retr0h I do like Poetry for Python projects, but I don't think it's useful or even beneficial in this case. The projects I referenced build packages that essentially download the binary for the respective platform during installation of the package. This can be done nicely in setup.py but I don't quite see how it would be done with Poetry, or how Poetry would be better than using setup.py and twine (the standard publishing utility for Python) for publishing the package.

@retr0h
Copy link

retr0h commented Dec 8, 2022

@sisp Mostly b/c setup.py has better alternatives now days. Poetry can handle publishing packages as well and uses the modern day pyproject.toml file to support such efforts.

@sisp
Copy link
Contributor Author

sisp commented Dec 8, 2022

@retr0h Old tools but widely adopted. There's nothing wrong with that. Anyway, how would you implement the code that downloads the binaries for the given platform and architecture during package installation with Poetry?

@andreynering andreynering added the help wanted Issues that could benefit from members of the community contributing their expertise or experience. label Jan 29, 2023
@Undertone0809
Copy link

I see a implement https://pypi.org/project/go-task-bin/#description

@pd93
Copy link
Member

pd93 commented Dec 30, 2024

This is one of the most upvoted issues, but I can't tell if there is actually any reason to keep it open? I'm not a heavy Python user, so haven't verified if https://pypi.org/project/go-task-bin is a good resolution.

If we're happy with it, then it can be added to our docs as a community installation method and this can be closed.

@pd93 pd93 added the state: awaiting response Waiting for issue author to respond. label Dec 30, 2024
@andreynering
Copy link
Member

That project seems to be up-to-date with new releases, which is good.

If it works, I agree to add a section to the website (below npm) and close this issue.

@retr0h
Copy link

retr0h commented Jan 1, 2025

Gilt publishes python packages which contain go universal binaries.

We piggy back on goreleaser with a smidge of python: https://github.com/retr0h/gilt/blob/main/Taskfile.yml#L125

@pd93 pd93 closed this as completed Jan 2, 2025
@pd93 pd93 removed help wanted Issues that could benefit from members of the community contributing their expertise or experience. state: awaiting response Waiting for issue author to respond. labels Jan 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: releasing Changes related to the release process.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants