We've been facing issues with different development environment setups. See #172, for example.
I think it would be extremely beneficial to adopt Vagrant and standardize the development environment. It would also make it much simpler for outsiders to setup a full development environment for custom development. Additionally, it would eliminate reported issues due to environment setup.
WebStorm has native integration with Vagrant:
Integration with Vagrant is now available in WebStorm out-of-the-box. You can run, reload and stop the Vagrant box from the IDE, without using the command line. Using a SSH Console you can connect to your Vagrant box or any other remote machine.
I don't know... I can't imagine me using Vagrant on a daily basis – I just don't need it because everything works perfectly fine (except Bender@Node 6, which cannot be a reason for us starting to use Vagrant).
Before we spend our time on this I'd be good to understand for whom this will be beneficial. The only group of developers I can think of right now are those using Windows if our tools stop working on Windows at some point, but we take care of making them OS-independent. Besides, installing Vagrant requires much more time than to install Node.js and CKEditor 5.
In other words – I'd wait for a feedback from developers. If we see that there are some who can't (due to their skills or environment) use Node.js, then I'm all for Vagrant machine. Actually, I've just recalled that beside installing Node.js you also need support for Bash and I'm not sure whether this comes with Git. There may be some additional steps needed and then Vagrant will be really helpful.
I think that Vagrant approach is exactly the opposite of what we should do. We should make our dev tools cross–platform, always up–to–date and easy to deploy. If we use Vagrant, it will block development and maintenance of project tools because there will be no pressure to work on that and because _"...it works in this 4–years–old Vagrant env, simply download it and..."_.
Eventually, it might become a problem for people who want to contribute or to do something extra with our tools because it would require a lot of downloading instead of npm install and play. It's discouraging and I think it's nothing like being open to the world and community.
I can perhaps share the experience of having this issue with CKEditor SDK - which anyone in the team should be able to build and use. Reality is, it stopped working on Windows last summer, and this hasn't been fixed up till now. Reasons? Not enough interest (it works for *nix systems so for most people), not enough priority, not enough time.
We did try to go the Vagrant route, but this failed again because nobody was maintaining the Vagrant machine, it was created as "nearly done", and abandoned cause it half-worked, and then - stopped.
It's just too idealistic to assume "it will always be up to date" if even a few people in the core team choose not to use it. So until you hear otherwise, I'd try to make the default process (the one that you all are using) work, and if you hear there are issues, first try to solve them within this process and not lock this to a Vagrant environment that nobody will care about after a month or so.
I can perhaps share the experience of having this issue with CKEditor SDK
Please note that CKE SDK is an internal project only. No one outside of the project is expected to run it, hence the low effort to keep it compatible with various environments.
CKEditor 5 builder, bundler and dev tools are a different story. They must work for developers outside CKSource because they're expected to be used i.e. for advanced integrations.
My main point is, if this idea will not have a 100% buy-in from the core team, this will fail - nobody will want to be doing the effort of maintaining something that they do not use themselves.
From my experience Vagrant only sounds good but it has its own issues and it slows down work on its. Maybe it fixes some env problems but I remember many different issues with it.
I back PKs comment - we should go different root. Also I hope you can understand how much against this idea I am, considering that I write this comment from Thailand.
My main point is, if this idea will not have a 100% buy-in from the core team, this will fail - nobody will want to be doing the effort of maintaining something that they do not use themselves.
+1. That's exactly the idea that we've been trying to apply also in other case. E.g. we chose to use multi-repo architecture to make sure that the core team uses CKEditor 5 in the same way as other contributors will. We've been forced to put a more work into the tools, but then the whole community can use them and we're constantly improving them.
We didn't decide to go with Vagrant and don't plan to work on this (at least, not in the current situation).
Most helpful comment
From my experience Vagrant only sounds good but it has its own issues and it slows down work on its. Maybe it fixes some env problems but I remember many different issues with it.
I back PKs comment - we should go different root. Also I hope you can understand how much against this idea I am, considering that I write this comment from Thailand.