Skip to content

Commit

Permalink
Update README-hacking.md
Browse files Browse the repository at this point in the history
Add a couple of paragraphs suggesting not to submit improvements
to how Fore, Back, Style, etc, work, because they are unlikely to be
merged.
  • Loading branch information
tartley committed Oct 7, 2021
1 parent 5ed1070 commit e8e311b
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions README-hacking.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,40 @@ what commands it executes, and manually execute something similar. PRs to
automate for Mac appreciated! Especially if they just made the existing Linux
Makefile targets work on Mac too.

## Desired changes

Colorama is unexpectedly popular, and is now a transitive dependency of many
popular and high profile projects. If we break backwards compatibility, even in a
subtle way, we can break applications - or pip installs - for lots of people.

In addition, the project already takes more time & energy to maintain than
the maintainers currently have available - for example the original author
is now a parent, and no longer uses Windows, so time and motivation for this
project are both much lower than they used to be.

As a result of both the above, we are very conservative in what sorts of
changes we can accept. Generally, we are not keen on new features. Even if
they are small, they still add to the future maintenance burden, increasing
the surface area into which future bugs or compatibility changes could be
introduced.

This is especially true if they are new ways to generate ANSI codes (e.g.
context managers for handling Fore, Back or Style changes.), since it has
always been Colorama's stance that if you want to print ANSI codes, then yes
we can help out with that in a rudimentary way, but if you want to do advanced
things, then you should be using a different library that specializes in that,
such as Termcolor, Blessings, or Rich. These libraries are much better than
Colorama at generating ANSI codes for colors and the like, and probably
already include the feature you are trying to add to Colorama, plus many
more.

In addition to using those libraries, if you call colorama.init(), then your
fancy new colors, etc, will also work on Windows. This is the main purpose
of Colorama.

The kinds of submissions we would encourage work towards that goal, or fix
bugs, or improve compatibility across operating systems or environements.

## Makefile and PowerShell scripts

Some common commands are captured as Linux makefile targets (which could
Expand All @@ -32,6 +66,8 @@ target.

## Release checklist

TODO: Add the use of release candidate versions to this checklist.

1. Check the CHANGELOG is updated with everything since the last release.
2. Remove the '-pre' suffix from `__version__` in `colorama/__init.py__.py`.
3. Run the tests locally on your preferred OS, just to save you from doing
Expand Down

0 comments on commit e8e311b

Please sign in to comment.