cucumber / vscode

Official Visual Studio Code Extension for Cucumber
MIT License
61 stars 16 forks source link

Cross-platform development scripts #210

Closed binhtran432k closed 3 months ago

binhtran432k commented 5 months ago

πŸ€” What's the problem you've observed?

Our npm scripts use shell commands, working on Unix-like systems (Mac & Linux). To expand user reach and simplify support, let's discuss migrating them to Node.js for truly cross-platform compatibility. Share your insights & preferred approaches!

✨ Do you have a proposal for making it better?

Since Node.js is our development environment, migrating all complex scripts to Node.js will ensure cross-platform compatibility. This leverages built-in modules like fs for file operations, documentation generation, and more.

πŸ“š Any additional context?

This problem also occurs in cucumber/language-server and cucumber/language-service


This text was originally generated from a template, then edited by hand. You can modify the template here.

kieran-ryan commented 5 months ago

Cheers for raising - agree on cross-compatibility; making it easy for anyone to contribute to the project is incredibly important.

The first thing I would suggest to check is what conventions are applied across Cucumber: whether there are other scripts in use and what format they take. Ensuring a consistent contributing experience across our repositories is important for maintainability. Perhaps you can take a lot at our other repositories and advise?

Secondly, I would weigh up the prospects of containerisation - which would standardise development environments and may be comparatively easier to set up and maintain.

Interested in your thoughts on the above @binhtran432k. What do you think?

binhtran432k commented 5 months ago

Hi @kieran-ryan,

Thanks for the thoughful response and your agreement on the importance of cross-platform compatiblity! I definitely share your sentiments about making contribution easy and accessible.

In response to your suggestion, I agree that other Node.js scripts used in Cucumber projects also lack Windows compatibility. While containerization holds promise, I propose keeping it a lower priority for now due to the following factors:

I'll keep this issue open to link it with future cross-platform development efforts. Feel free to close it if it is not planned!

kieran-ryan commented 3 months ago

@binhtran432k, thanks for your valuable input and discussion on this issue. Given the polyglot nature of Cucumber projects, suggest we continue with scripts for present moment. However, we can absolutely continue further discussion and revisit this decision if new information comes to light.

Introducing Node scripts would add a Node installation dependency to workflow jobs beyond JavaScript. This may affect contributors working with different languages more than ourselves, who may be without a Node installation (for example, see the makefile for the Python implementation of the gherkin parser). As these scripts are more related to maintenance than the JavaScript implementation itself, they could be worked on by any member of the community.

Although the current script format is not perfect, it seems to be the accessible option for the moment, as you've also pointed out alternatives for Windows users (Windows users can leverage WSL or other virtual machines).

Appreciate your continued contributions and ideas - you're doing excellent work!