-
Notifications
You must be signed in to change notification settings - Fork 696
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
Let cabal init
remember chosen language within current session
#10115
Let cabal init
remember chosen language within current session
#10115
Conversation
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.
Not blocking on this because it's arguable, and in particular my newTVarIO
example isn't doing the same thing. But IIRC there are other examples, so it's worth consideration.
On top of whether the approach of adding the notion of Doing unit test using Another alternative would have been to turn the whole Let me know if there is anything code wise I should iterate before addressing the rest of the checklist. |
A |
But If we use |
In order to add tests I think I would need to change the PurePrompt have not only a But maybe it would also make sense to change the |
I implemented a solution with ReaderT IORef and was able to add test for PurePrompt. Adding a ReaderT pushed for the introduction of a PromptIO which is now the instance of Interactive. ie. IO is no longer an interactive. Something that bugs me is that it seems that Interactive is used in two scenarios. As the monad used in cabal init but also as a helper to perform user input. Before the introduction of session state these scenarios were indistinguishable but now they are not. The effect is that I needed to add some runPromptIO on the later scenario that needed a IO as monad (see I tried (and failed) to leave If dropping Definitely these changes can be squashed. |
Thank you for working on it! I'm sorry we're in a release death march now and can't quite review it immediately. But we'll get there! |
cabal init
remember chosen language within current sessioncabal init
remember chosen language within current session
I'm not sure if the release march is still going or if it ended with the release of 3.12.1.0 (the release information in github does not match the one in Hackage, I'm not familiar with the process). Either way, let me know if I need to iterate on this PR when you have a chance :-) |
Oh, thanks for the ping! The march is over, indeed. I hope to do a review this week! |
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.
Thank you! And sorry it took so long to get back to you.
228ff16
to
6fbd20c
Compare
I squashed and rebased the whole PR in the first commit and then addressed all the feedback in separate commits. Let's see how CI feels 🤞 . |
The bot will merge it during the week. Thanks! |
And thanks for the manual QA notes. We'll try to find volunteers to check it. |
Oops. I just pushed some more cleanups. I can take them back if needed. But I noticed some things that can be improved and send the last two commits. Thanks for the feedback! |
Don't worry, the bot restarts the timer on PR activity. |
Manual QA passes here. |
@bcardiff no worries! That's why we have a bot: it merges after two days of inactivity to create some buffer for last changes. |
@mergify refresh |
✅ Pull request refreshed |
Strange: Mergify is refusing to proceed because GitHub is claiming |
On a different note: how do I switch the status of project Manual QA board from Waiting to Testing Approved? This is baffling but I can't find a way. It used to be possible to drag and drop those cards (although I'd prefer to do that without visiting the project page), but this seems to have gone with the old GH projects? |
Fixes #10096
QA Notes
Call
cabal init
and choose a package build that will end up asking for multiple languages. The last language you choose it should be the default option the next time. This way the user will just need to confirm that the same language is wanted.