-
Notifications
You must be signed in to change notification settings - Fork 26
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
Separate System.Console.ANSI.Types to its own package #151
Comments
And also haskell/filepath#181. |
I don't see any reason not to do this. If I understand correctly, it helps some users and does not affect others. I assume both packages would remain in this repository, each in its own subfolder named after the package. I assume that the new package would be called |
Awesome. Shall I give it a try? |
@Bodigrim, please do. |
@Bodigrim, I have some time and thought I might take steps to implement this, step-by-step. Let me know if that cuts across what you may be doing behind the scenes. I propose the following sequential steps:
|
I have implemented Step 1. |
I have also implemented Step 2: https://hackage.haskell.org/package/ansi-terminal-types-0.11.5 and commercialhaskell/stackage#6919. |
Also drops support for GHC versions before GHC 7.10.1, because those versions of GHC did not support re-exported modules.
Also drops support for GHC versions before GHC 7.10.1, because those versions of GHC did not support re-exported modules.
I have also implemented Step 3, but not yet released |
@mpilgrem sorry for delay, I'm AFK. I actually took a stab at it back in February: https://github.com/Bodigrim/tasty/tree/optional-ansi-terminal and https://github.com/Bodigrim/ansi-terminal/tree/split-types. Howeve, I did not submit the PR, because unfortunately it does not solve the motivating case. The problem is that That said, I think in the grand scheme of things this split is a healthy development, even if not bearing immediate fruit. Thanks for making it happen. |
Thinking about your underlying problem, I wondered why/how the |
Another work around is that after #156 |
@Bodigrim, I have been thinking about that (bringing all residual use of Microsoft's Win32 API back 'in house', once emulation falls away). However, it is not just |
Thanks, @mpilgrem, brilliant! |
tl;dr I would like to make
ansi-terminal
an optional dependency oftasty
, but cannot do so unlessSystem.Console.ANSI.Types
is separated to its own package.Current relationship between
ansi-terminal
andtasty
is kinda straining for both packages. On one side, as discussed in #113 (comment),ansi-terminal
is blocked from acquiring new dependencies on even something as basic astext
because it is likely to cause circular dependencies. On the other side, even current lightweight footprint is not enough for some boot packages such asfilepath
, which ended up implementing a micro-testing framework of its own.I would like to make
ansi-terminal
an optional dependency oftasty
. On the surface it is quite easy: if there is a build plan withansi-terminal
, use it, but if there is none, then sacrifice colors and carry on. In such case bothansi-terminal
would be able to evolve at its own pace, andtasty
would be suitable forfilepath
test suite (which is currently prohibited by a circular dependencyfilepath -> tasty -> ansi-terminal -> Win32 -> filepath
.The only blocker at the moment is that
Test.Tasty.Providers.ConsoleFormat
re-exports some types fromSystem.Console.ANSI.Types
. If only the latter was in its own package, used both bytasty
andansi-terminal
, the puzzle would be solved.How does it sound? I'm happy to do all the work associated.
See also UnkindPartition/tasty#361.
The text was updated successfully, but these errors were encountered: