FAQs
Why would I use Vortex instead of just using Drupal Composer template?
You can use Drupal Composer template, but that will be your step 1. Your next step would be to add all the missing pieces that Vortex provides, such as CI integrations, tooling configuration, workflows, deployment scripts, hosting-specific configurations, documentation.
Then you would have to test all of that and make sure that it works correctly together. You would also need to make sure that there are no false positives (for example, passing CI on broken tests can go unnoticed up until the release and would block it).
And you would have to maintain all of that and apply the updates to all the projects that you have (if you like things to be consistent, of course).
Vortex covers this out of the box: you can override anything you want in your project, but still receive updates and improvements from Vortex in the future. Your team will also have a central place to look for the documentation and the tools that they need to use.
Can I use Vortex with my existing project?
Yes, you can install Vortex into your existing project.
Can I use Vortex with my existing project and keep my existing CI?
Yes, but you would need to update your CI configuration to use Vortex's workflow scripts.
We are in the process of adding support for other popular CI providers.
Can I use Vortex with my existing project and keep my existing hosting?
Yes, but you would need to update some of the deployment scripts to match your hosting provider.
We are in the process of adding support for popular hosting providers.
I do not like some of the decisions made in Vortex. Can I make changes?
Yes, you can change anything you want. Vortex is a project template, which means that you can disable/remove certain features. But it also means that you may need to maintain these changes in the future yourself.
Feel free to open an issue to discuss any of the decisions made in Vortex.
I do not need all these features? It looks like an overkill.
One of the core principles of Vortex is to provide rich features to all projects, regardless of their size.
If you think that some of the features are not required for your project, then Vortex is not for you. However, there were cases when people have discovered some new tools and approaches by using Vortex and have decided to keep them in their projects. So, you may want to give it a try.
We are working on providing a more streamlined way of choosing the features during the project creation process, so you could reduce the number of features to the minimum required for your project.
I think it is too opinionated.
Vortex is opinionated to the point to make it work as a project template. There are some changes that you can make to the project, but there are also some that have to stay in order to make tools "talk" to each other.
There could be some cases when it is unreasonably opinionated - we consider this as a defect and would be happy to fix it. Please provide your feedback in the issue queue.
How easy is it to upgrade Vortex in my project?
We provide a command to update Vortex to the latest version. When it runs, it will update the scaffolded code to the latest version. You would then need to manually resolve any conflicts that may arise. This process is similar to how developers manually copying the changes from one project to another, but in this case, it is automated.
Also, any changes and adjustments made by your team for your project would need to be manually resolved. This is a trade-off between relying on an upgradable project template, where you have full control, and a dependency package, where someone else has full control of the code that drives your project.
We are looking at utilising the approach from both worlds: distribution through a package with an ability to override the scaffolded code.
How easy is it choose the features that I need?
Vortex provides an installer that allows you to choose the features that you need interactively.
It is usually used as a part of the project creation process.
We are working on providing a more robust installer and a web-UI version.
Why CircleCI? What about other CI providers?
CircleCI was chosen because of its flexibility. More specifically, CircleCI allows to use your own runner container (the container where CI steps run) and use remote Docker, making it possible to build the project in CI exactly the same way as it would be built in your hosting (if your hosting uses Docker).
The other reason is that CircleCI supports passing the build artifacts between jobs via cache. This becomes really powerful on large consumer sites, where building the project takes a long time. Vortex mitigates this by providing a CI configuration used to download and cache the database overnight and use this cache for all the builds during the day, skipping the long database download and import process.
And for the really large projects, CircleCI supports container image layer caching, meaning that some parts of the application could be built once and then reused in all the subsequent builds.
Read more about CircleCI.
We are working on bringing integrations with other CI providers.