Let me introduce Drop, another command line tool for Backdrop CMS.

As a Drupal-centric hosting provider we at AltaGrade are looking forward at some point to actively start migrating our customer Drupal 7 websites to Backdrop. And we really would like to have all the essential developer and system administration tools that will ease otherwise quite tedious and potentially troublesome migration process. That's why lastly we've dived into evaluating Backdrop Console and Drush Integration for Backdrop CMS, found them great and promising tools, each with its own pros and cons.

At the same time, both projects have only limited set of working commands: Backdrop Console, because it is quite fresh and being built from the ground-up; and Drush Integration, because it is about gradually updating each of Drush command initially built for Drupal to make them work on Backdrop, at the same time not allowing rest of the majority commands. We badly needed more commands to work, and had realized that while submitting request issues and contributing some code ourselves help only at certain degree, it would take much longer to reach the desired level of efficiency, especially when it comes to downloading, uploading and syncing the databases across the different environments. 

And that is when we decided to take another stab at getting all the juicy Drush possibilities working on Backdrop sooner without getting in the ways and paces of the developers of the Backdrop Console and Drush Integration projects. And here is the Drop, a completely refactored pre-Symfony, pre-Composer Drupal era Drush, namely version 4.x, fully compatible with and working like a charm on Backdrop. There are just a few commands missing, but most of the Drush commands we usually used to work with Drupal sites are there on Drop running without issues.

This tool has been built mostly for our own purposes and I am not even sure that refactored Drush-version is the right candidate for https://github.com/backdrop-contrib and therefore we've placed it under AltaGrade. However, I believe the more tools we have for Backdrop the better for the community, and if the community accepts Drop, then of course we will move it to Backdrop contribs.

Have a nice time droping on CLI!

Comments

jenlampton's picture

Wow, @ this progress is amazing.

This post makes me really sad because I really wish you had collaborated with one (or both) of the existing backdrop command line projects, rather than creating a third. Starting over again does a disservice to everyone who has worked on these tools before. 

We badly needed more commands to work, and had realized that while submitting request issues and contributing some code ourselves help only at certain degree, it would take much longer to reach the desired level of efficiency...

Were the existing maintainers not interested in having you on as a co-maintainer for either project? If your team had commit access to drush, for example, it would probably have taken you less time than creating something new. Your tool would also have benefited from the input of those with more Backdrop and/or drush experience.

This tool has been built mostly for our own purposes and I am not even sure that refactored Drush-version is the right candidate for https://github.com/backdrop-contrib and therefore we've placed it under AltaGrade

Now that you have the tool your team needed so urgently, I hope that you would consider granting them the time they need to contribute this code back to the Backdrop community -- preferably as part of the existing Drush project.

Having too many similar projects is one of the problems that plagued the Drupal community, and I would love if if we could avoid that in Backdrop (as much as possible).

This post makes me really sad because I really wish you had collaborated with one (or both) of the existing backdrop command line projects, rather than creating a third. Starting over again does a disservice to everyone who has worked on these tools before. 

Jen, thanks for your opinion, please don't be sad! I do see and fully accept your arguments. Our intention was never either to make you sad or disservice who has worked on two other tools before. 

Were the existing maintainers not interested in having you on as a co-maintainer for either project? If your team had commit access to drush, for example, it would probably have taken you less time than creating something new. Your tool would also have benefited from the input of those with more Backdrop and/or drush experience.

Oh, no, just on the contrary - we find everyone in Backdrop community friendly and very much helpful in guiding new comers like our team members. In fact, you will find mine or Alex' participation in both projects issue tracks. Please stay assured we will follow where the consensus takes the majority of Backdrop community. 

As for why we decided to go ahead with creating another command line tool, we really needed some missing commands in both drush and/or b for our internal automated workflow, which we are preparing to fully embrace Backdrop. When time comes for either of two projects to get mature enough, we will just switch drop commands.

As for time and efforts spending, I probably failed to properly explain how drop was created: our team did not spend much time working on this project, because all we did was to refactor all the occurrences of drupal changing to backdrop, drush to drop, and to replace the download paths. In fact the first working version was done within several hours and we polished it for another day and then rolled out to Github.

Now that you have the tool your team needed so urgently, I hope that you would consider granting them the time they need to contribute this code back to the Backdrop community -- preferably as part of the existing Drush project.

I am sorry I forgot to update this forum page that the project was moved to https://github.com/backdrop-contrib/drop some time ago. I am not sure about will either drush or maintainers be willing to accept the drop code, because all three approaches are fundamentally different: while Drush is trying gradually open up working commands for Backdrop at the same time effectively blocking all non-functional commands for now, and while B is being build up from a clean slate, Drop is simply refactored pre-symphony Drupal era Drush 4.x.

Personally I find B's approach most appealing, but because its's missing quite a few commands, we keep using Drop in our internal workflow. At the same time, we track how Drush is progressing with interest. And we include all three command line tools in our Backdrop development stack on https://github.com/altagrade/backdrop-dev 

Please be assured our team is open for any kind of co-operation, and we will continue to contribute to Backdrop projects, including Drush and B. As I said I am not sure Drop's approach is right one, but it is meeting our automation needs for the present and we've had just shared it with the community.