-
Notifications
You must be signed in to change notification settings - Fork 56
Preparing for vty multi-platform release #260
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
Comments
@jtdaugherty
I'm interested in your thoughts whether it would be feasible to put the tests, demos, and examples into the crossplatform project instead. My reasoning is that I would like to maintain feature parity across windows and linux. And if I have to try and maintain a separate copy of the tests, that goal is just harder. I've already got a copy of the demos building and running in the crossplatform project. I'll work on the examples and tests if you are agreeable to this kind of approach. |
I think this could work nicely for the demos and examples since they are end-user programs that depend on a I think the tests are another matter, though; I already split up the tests into those that only test the Vty core internals (those went in With that said, there could also be tests that make sense in So, I guess what I'm saying is that it seems to me that there could legitimately be tests that belong in each of the four packages, depending on what is being tested. |
Hi! That's a great write-up, I'll see where and when I can help with these steps this summer. Regarding announcements, I would say reddit and discourse are two most obvious places to promote the upcoming release. I can also cover Russian-speaking telegram channels. I follow neither IRC nor mailing lists, so I can not say whether they have a significant audience not covered by previous options. |
Thanks, @ShrykeWindgrace! |
@chhackett FYI the |
By the way, where do we report issues for current set of packages and integrations? One centralized repository ( |
@ShrykeWindgrace I'd say that if it isn't clear, report on |
Just an update for you, @jtdaugherty - I am working on bringing tests into the vty-windows plugin now, analogous to the vty-unix tests. Once I get those working I believe we will be in a position to work on the last few points of your task list here. I did add a README to vty-windows btw. If you could give it a read and provide some feedback I'd appreciate it. I just started by copying vty README... |
Is there already a way to test this? Does anyone have a |
@hasufell To run the tests, check out vty and change the branch to refactor/vty-unix-split. The problem I'm having is with a test that tries to look up and change the console mode to support VT sequences, and is failing with an exception on the GetConsoleMode windows call. In other contexts, such as running the demo applications (which are provided in the vty-crossplatform project) this all works fine. |
I want to try it in an existing package that depends on |
Hi @hasufell, there will definitely be a migration guide before the releases happen, but I have not gotten to that particular task yet. However, here’s a summary:
There are some other changes that will likely be necessary, but the amount of changes will depend on how much of the Vty API your application uses. I’m happy to answer questions if you try out the package dependency changes and then run into API issues. For most applications, the upgrade will not involve very many changes, though. As far as a
And then |
Is there a patch/branch for brick yet? |
Writing a migration guide is still on our TODO list, but I can give you a quick and dirty version. If your project builds vty with the default configuration, then your project should build and run on Windows as-is. For an example, see: https://github.com/jtdaugherty/vty-crossplatform/blob/main/programs/ModeDemo.hs |
@chhackett - thanks for your update, that’s great news! The README you added looks good to me. |
@hasufell No, there is not a branch for |
@jtdaugherty |
@chhackett yes, please do. I had a note to myself about checking for other Unix dependencies in Brick; you might have fixed the only one. |
@chhackett actually, let me create the Brick branch and then you can submit it against that. |
@chhackett @hasufell here is the |
PR is up. |
@chhackett Thanks! |
For reference: jtdaugherty/brick#445 =) |
I tried the following
But it didn't work and
This is with cabal-install-3.10.1.0. |
It seems to work with cabal-install-3.6.2.0 though, so it looks like a cabal regression. |
@hasufell thanks for your testing. Were there any other issues once Cabal build |
Doesn't seem so. But I have not built on windows yet. |
@chhackett on your comment above about the |
My release announcement text draft:
|
Cool, ghcup might be the first to use it for next release. |
@hasufell I'm glad to hear it! I'm currently working with @chhackett to choose a release date. I'll update here when we have a date in mind. |
@chhackett I'm wondering if you could stress-test |
I tried building ghcup (without tui) on windows with stack and failed. Maybe cabal can manage that. |
Hurrah! |
Use |
I'll test that, thanks=) |
FYI: @chhackett and I are planning on October 30 for the releases. |
As of around 3 PM Pacific time today, |
So I ran into a permission problem. Apparently I need to be added to the 'upload group' of hackage. I did not realize there was more to the process beyond getting an account. So I sent out the email to request that, but I guess I don't know how long it will take to get that issue resolved. I guess I'm a little surprised by this. I read the page about uploading (https://hackage.haskell.org/upload) and it just said I needed a username/password, which I got. |
@chhackett ah yeah, it's been so long since I had to do that that I forgot that it was a thing. No problem! |
I'll let you know here as soon as I get permission, and get vty-windows uploaded. |
vty-windows is uploaded. Thank you @jtdaugherty for orchestrating all the pieces of this project, and @ShrykeWindgrace for all your help with the prototyping, investigation and problem solving skills. |
Announcements are now up!
Thanks, everyone! And with that, I will now close this ticket! |
Huge thanks to all who made this happen! While I'm not using Windows myself, I very much appreciate that this allows my vty- and brick-based software to also run on Windows with little effort on my part. 🙏🏻 |
Uh oh!
There was an error while loading. Please reload this page.
This issue is for tracking the status of numerous tasks as part of the recent/ongoing work to support Windows in Vty. These tasks are now aimed at preparing for a public release. This is mostly for me to track my own work but also to provide a place where others can see what's planned and discuss it.
Planned release/announcement date: October 30, 2023
Related issues:
People involved: @jtdaugherty @chhackett @ShrykeWindgrace
Relevant repositories and branches:
vty
: refactor/vty-unix-split branchbrick
: refactor/vty-crossplatform branchRelevant pull requests:
Tasks, roughly in order:
vty
demo applications (indemos
andexamples
) should live (probablyvty-unix
)vty
tovty-crossplatform
; build withcabal build -f demos
.vty
vty-unix
, and what went away entirely and how to deal with that)vty
no longer implicitly loads the user config from disk. That is now an application responsibility (to call the library routine that does so).README
describing howvty
needs to be used now6.0
master
vty-unix
vty
dependency to>= 6.0
stdin
flushing fix patch tovty-unix
vty-windows
README
addedvty-crossplatform
README
vty
bound to>= 6.0
irc-core
brick
's latest release metadata to set Vty upper bound to< 6.0
vty
6.0 to Hackagevty-unix
0.1.0.0 to Hackagevty-windows
0.1.0.0 released to Hackagevty-crossplatform
0.1.0.0 to Hackage (depends onvty-windows
andvty-unix
releases)brick
unix
dependencyrefactor/vty-crossplatform
tomaster
2.0
Testing your application
Want to test your application before the release? Here’s a high-level summary of what is changing and how to test (full details to follow before the release):
vty
will still provide the core rendering functionality and data types and your application will still need to depend on it.mkVty
) has moved to one of three packages:vty-unix
and importmkVty
from that package.vty-windows
and importmkVty
from that package.vty-crossplatform
and importmkVty
from that package.There are some other changes that will likely be necessary, but the amount of changes will depend on how much of the Vty API your application uses. I’m happy to answer questions if you try out the package dependency changes and then run into API issues. For most applications, the upgrade will not involve very many changes, though.
To test your application,
git clone
the various repositories (and check out the branches mentioned above) and then put the followingcabal.project
file into your application source directory during testing, updating it to point to the paths to your Git clones:The text was updated successfully, but these errors were encountered: