anstyle icon indicating copy to clipboard operation
anstyle copied to clipboard

Supporting FORCE_COLOR as an alias to CLICOLOR_FORCE

Open samypr100 opened this issue 1 year ago • 6 comments

As originally reported in https://github.com/astral-sh/uv/issues/3955, it seems both https://force-color.org/ and https://no-color.org/ are becoming adopted community standards.

Python's 3.13 docs shows an example usage of both https://docs.python.org/3.13/using/cmdline.html#controlling-color.

It would be ideal if anstyle can support FORCE_COLOR in addition to CLICOLOR_FORCE to force color support.

I believe there should be no functional changes beyond supporting an additional environment variable check to the existing clicolor_force function in anstyle-query crate. NO_COLOR would still take precedence over FORCE_COLOR.

samypr100 avatar Jun 02 '24 16:06 samypr100

https://force-color.org/ is new to me. I've seen FORCE_COLOR before but it was cargo-culting only without anything published and there were deviations of it.

btw we already support CLICOLOR / CLICOLOR_FORCE, see https://bixense.com/clicolors/

A big question is how to handle the interaction of 3 different standards. At least FORCE_COLOR and CLICOLOR acknowledge and specify how to interact with NO_COLOR but they don't specify how to interact with each other, e.g. jhasse/clicolors#15

epage avatar Jun 03 '24 18:06 epage

Thanks, https://force-color.org/ (the website) was relatively new to me as well.

I decided to propose this issue given python started considered it canonical in their docs and thought it was probably worthy to consider support for it here as it would help projects like uv, ruff, and potentially others.

For what it's worth python just checks for the mere presence of the environment var, and other tools are notionally similar but differ in what exactly they search for and how they use it in context of the other variables.

I don't see a standard on how all of them interact and I'm not sure there will ever be one. For this project specifically, I was trying to align FORCE_COLOR to CLICOLOR_FORCE's definition and usage.

I wish the was a better way to gather metrics on usage, but at a glance it does seem at least on Github that "FORCE_COLOR" usage outweights the usage of "CLICOLOR_FORCE", but I understand that's not fully representative by any means.

samypr100 avatar Jun 04 '24 01:06 samypr100

When I was weighing what to build-in, I was less interested in how wide spread something is about how consistently its expected to be implemented. People can always build their own thing on top but I didn't feel like arbitrating between parties arguing over 3 different implementations.

epage avatar Jun 04 '24 02:06 epage

In donatj/force-color.org#30 I bring up the discrepancies. We'll see how that goes...

epage avatar Jun 04 '24 02:06 epage

I didn't feel like arbitrating between parties arguing over 3 different implementations.

Thanks for bringing up the discrepancies ❤️

samypr100 avatar Jun 04 '24 02:06 samypr100

Is this resolved, if not how can I help?

TimTheBig avatar Dec 13 '24 15:12 TimTheBig