-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add support for butler #13
base: master
Are you sure you want to change the base?
Conversation
Make it trivial to use makelove to push butler builds to itch.io. Adds a new butler section with two parameters: itchapp - the name of the app: username/projectname. publish_love - whether to publish the .love file (since it's not a target). Remove butler from postbuild examples since we have a better way of doing that. Test ==== Created a test project on itch and pushed win32, win64, macos, lovejs, love builds to it from Win10. Incremented version and pushed a new win32 build. Version numbers show as expected. Play lovejs build in browser. Play from itch app. Butler is not invoked when itchapp is not defined.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a fantastic feature from my point of view as itch is my primary outlet.
I don't see anything wrong with the code but I'm also not experienced with Python :^]
I have not yet used butler so the obvious question that arises for me is how login is done. Maybe that could be documented in a sentence.
I am already looking forward to trying it (soon™).
Edit: Linux user here, I think you use Windows, so verifying this works may actually be valuable :]
@hollunder makelove's configuration is generally documented in makelove_full.toml so this commit includes documentation there which essentially points you to https://itch.io/docs/butler/. Logging in is the third step in their tutorial. It's done by magic link and a saved token, so makelove doesn't need to store or access any authentication information. (Butler setup is super easy: install via itch app, run, open magic link, click button, done.) Yeah, I'm using Windows so I look forward to hearing how well this works on Linux! |
Why are the postbuild actions not sufficient here? I feel like having a dependency like that needs a good reason, because if butler or the a API (the command line interface and the token stuff) ever changes, makelove needs changes too. Any code also needs maintenance and I feel like by having it, a user doesn't even save much. I would say you probably need to read the butler docs anyway (for seting it up and auth) and you also need to add a line to your makelove.toml in the end. |
Advantages over postbuild:
Users could write a postbuild step that handles the above and parses the makelove.toml, but that's a lot of extra work. makelove could expose per-target post build steps (and include a .love target for Linux support), but still has many points of maintenance.
My biggest argument is that if butler changes and one person pushes a fix to makelove, then it's fixed for every user instead of all users maintaining their own postbuild in each of their projects. Although, I recognize the downside of putting the maintenance burden on you instead of the user. |
Make it trivial to use makelove to push butler builds to itch.io.
Adds a new butler section with two parameters:
itchapp - the name of the app: username/projectname.
publish_love - whether to publish the .love file (since it's not a
target).
Remove butler from postbuild examples since we have a better way of
doing that.
Test
Created a test project on itch and pushed win32, win64, macos, lovejs,
love builds to it from Win10. Incremented version and pushed a new win32
build. Version numbers show as expected.
Play lovejs build in browser. Play from itch app.
Butler is not invoked when itchapp is not defined.