rsc.io/script: How to contribute?

435 views
Skip to first unread message

twp...@gmail.com

unread,
Mar 6, 2024, 4:46:23 PMMar 6
to golang-nuts
Internally, Go has a very nice package for integration testing.

Roger Peppe has been doing a fantastic service by making it public and maintaining it as a community project at github.com/rogpeppe/go-internal/testscript, and Roger's package has been extremely valuable for my project and many others.

Over a quarter of a year ago, Russ Cox made a semi-official release of the code which includes several improvements (e.g. better modularity), but also removing critical functionality required to make rsc.io/script usable by other projects.

Appeals to the author about how to contribute have been met with silence. Fundamental issues like installation failures have had no response.

Does rsc.io/switch have a future? If so, how can we contribute? This is a fantastically useful piece of software for the Go community and we will all be better off if it succeeds.

Regards,
Tom

twp...@gmail.com

unread,
Mar 6, 2024, 4:52:57 PMMar 6
to golang-nuts

Ajay Kidave

unread,
Mar 6, 2024, 8:47:03 PMMar 6
to golang-nuts
I have had a good experience using https://github.com/commander-cli/commander for testing CLI commands. It uses a yaml file for test config. I generally avoid yaml but the commander config format is easy to work with. Never used script, the state saving between commands feature might be missing in commander-cli.

twp...@gmail.com

unread,
Mar 7, 2024, 8:44:08 AMMar 7
to golang-nuts
Thanks, but I'm already heavily invested in testscript with over 10K lines of scripts and a lot of custom configuration, and commander-cli/commander clearly lacks functionality I need.

Eli Bendersky

unread,
Mar 7, 2024, 9:18:51 AMMar 7
to twp...@gmail.com, golang-nuts
On Thu, Mar 7, 2024 at 5:44 AM twp...@gmail.com <twp...@gmail.com> wrote:
Thanks, but I'm already heavily invested in testscript with over 10K lines of scripts and a lot of custom configuration, and commander-cli/commander clearly lacks functionality I need.

OOC, is there anything wrong with github.com/rogpeppe/go-internal/testscript?

I've recently used it successfully on two diverse projects; it works well, it still appears to be maintained, and has good documentation for out-of-stdlib use cases.




 

On Thursday, March 7, 2024 at 2:47:03 AM UTC+1 Ajay Kidave wrote:
I have had a good experience using https://github.com/commander-cli/commander for testing CLI commands. It uses a yaml file for test config. I generally avoid yaml but the commander config format is easy to work with. Never used script, the state saving between commands feature might be missing in commander-cli.

On Wednesday, March 6, 2024 at 1:52:57 PM UTC-8 twp...@gmail.com wrote:
*rsc.io/script

On Wednesday, March 6, 2024 at 10:46:23 PM UTC+1 twp...@gmail.com wrote:
Internally, Go has a very nice package for integration testing.

Roger Peppe has been doing a fantastic service by making it public and maintaining it as a community project at github.com/rogpeppe/go-internal/testscript, and Roger's package has been extremely valuable for my project and many others.

Over a quarter of a year ago, Russ Cox made a semi-official release of the code which includes several improvements (e.g. better modularity), but also removing critical functionality required to make rsc.io/script usable by other projects.

Appeals to the author about how to contribute have been met with silence. Fundamental issues like installation failures have had no response.

Does rsc.io/switch have a future? If so, how can we contribute? This is a fantastically useful piece of software for the Go community and we will all be better off if it succeeds.

Regards,
Tom

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/f6f92dd8-9033-43a0-9348-02c039c7fe90n%40googlegroups.com.

twp...@gmail.com

unread,
Mar 7, 2024, 10:56:14 AMMar 7
to golang-nuts
github.com/rogpeppe/go-internal/testscript is absolutely wonderful. I've been using it successfully for several years and am the #4 contributor to the project. My only complaint would be that it sometimes takes a few months for changes to be merged and the release cycle is infrequent, meaning that I have to maintain my own workarounds for missing functionality longer than I would like. There also some long-term unresolved issues like the ability to "not care" about the exit code of a command, which has been open for nearly four years.

testscript is a fork from an earlier version of Go's src/cmd/go/internal/script, and since then script has been re-written to be more modular. rsc.io/script is a semi-official release of src/cmd/go/internal/script as it's from one of the original Go developers. This puts the future of testscript into doubt: will people switch to rsc.io/script or not? I've also raised this with the testscript developers.

I can continue to use testscript, but if the feeling is that the world is moving to the more modern rsc.io/script, then I'm keen to contribute to rsc.io/script to make it useable by other projects. But first, I need to know how to contribute to rsc.io/script...

Russ Cox

unread,
Mar 7, 2024, 9:04:10 PMMar 7
to twp...@gmail.com, golang-nuts
Hi all,

I published rsc.io/script for people to play with, to support my testing talk. For now it is on a back burner - I get so much GitHub mail that I cannot keep up with all the notifications, so I hadn't seen the activity there. Perhaps at some point we will decide to publish this code in an officially supported location and change cmd/go to use that copy instead of cmd/go/internal/script, but that would require finalizing the API to the point where we are comfortable supporting it forever, and there are other projects that are more pressing (for example, range over functions and iterator libraries). I am reluctant to change rsc.io/script to add new features and so on, because that just creates a divergence that will have to be resolved when we do want cmd/go to use this hypothetical official version. 

I'm glad people find it useful and I apologize that there is not time to do something more with it myself. That happens in open source.

Best,
Russ

twp...@gmail.com

unread,
Mar 8, 2024, 8:41:30 AMMar 8
to golang-nuts
Many thanks for the response Russ. It's clear I should stick with testscript for now.

Regards,
Tom

Reply all
Reply to author
Forward
0 new messages