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
jj: include default features #171181
jj: include default features #171181
Conversation
Thanks for contributing to Homebrew! 🎉 It looks like you're having trouble with a CI failure. See our contribution guide for help. You may be most interested in the section on dealing with CI failures. You can find the CI logs in the Checks tab of your pull request. |
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.
Don't you need
depends_on "watchman"
to use the watchman
feature?
Ah, good call! I'll update that. I have had watchman installed on my system for so long I half forgot it isn't built in. 😂 |
Updated—thanks again for the feedback there, @carlocab! |
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.
LGTM!
@chriskrycho can you also squash the commits and forced update your branch? Thanks! |
At the moment, this only includes specifically the `watchman` feature, which can dramatically improve performance on large repositories; and the project is pretty careful about adding new features to the list of defaults. Additionally: - Explicitly depend on watchman for default features. - Skip now-unnecessary `--bin` arg. Co-authored-by: Rui Chen <rui@chenrui.dev>
2342a0a
to
4dceb7f
Compare
@chenrui333 done, and thanks! |
Thanks @chriskrycho! |
🤖 An automated task has requested bottles to be published to this PR. |
@chriskrycho, can this change be optional, like Or vice-versa: if it’s crucial for a dominant part of the user base, maybe an option to have it raw and featureless is more suitable. Yes, more options are not always better for UX, but (kind of) breaking packaging (or delivery) changes aren’t as well. I’m unsure if it deserves a separate issue, so I thought it’s better to address it here. |
We don't allow options in Homebrew/core (because they are infeasible to test properly in CI). If you want a version of this formula with options (e.g. So the options here are:
|
Oh, I see. I overlooked the explicit note about it in the formula cookbook—that’s my bad. I’m not sure what is the best course of action here. I’m not a maintainer or anything, just a “concerned citizen” who didn’t expect to get an extra 700 MB of dependencies. Maybe it would be a viable solution for the Jujutsu repo to have a separate tap with options and leave the core variant in the most suitable form for most users. But I have no idea what form it is—maybe everyone wants the watchman. |
Thanks for flagging this up, @Aeron! It’s a fair point. (As I noted up-thread, I have had watchman installed on every machine I have had for a very long time now, so I didn’t even realize how large it is!) I’ll discuss it with the jj team and see what the best path forward is. Thanks @carlocab for the clear set of options! |
Speaking also as a “concerned citizen” (to use @Aeron’s words), this seems like the most reasonable approach to me. jj is built with watchman support but does not (to my knowledge) actually depend on watchman to function properly unless the behavior is explicitly opted into. Just as git optionally can use watchman, but does not require it, and git does not have a dependency on watchman in Homebrew either. |
That's correct! And I probably should have clarified as much in response to @carlocab’s original question about it that |
I just opened #171735 in line with this discussion! 🎉 |
At the moment, this only includes specifically the
watchman
feature, which can dramatically improve performance on large repositories; and the project is pretty careful about adding new features to the list of defaults.HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?