excid3/jumpstart

And this, THIS is why you probably ought to provide a docker-based development experience

jpwynn opened this issue · 0 comments

Although I would need the Pro features I first wanted to try this repo as a "quick test" of the basic look/feel of the Jumpstart.

The entire point of Jumpstart, presumably, is to side-step the usual morass of Rails config hassles and "jump" right to your cool configuration.

100% elimination of local dependency issues and offering a single-command "100% bullet-proof up and running" out of the box experience are two pretty good reason why IMO you ought to consider offering a working, out of the box Docker-based startup.

As-is, the out of box experience can be pretty rough...

Example: Postgres. Your Getting Started > Requirements section lists ruby, Yarn (no version?), Redis (no version?), etc but neither the README nor your video "Jumpstart Ruby on Rails Template Walkthrough" seem to mention the requirement for Postgres running or offer any suggestions re: which version or installation approach to use and where to get those "database credentials" one is supposed to add to config/database.yml

Omitting any mention of installing/running the database and connecting it to the app falls short of the "jumpstart" goal.

Assuming you eventually get it all installed without major dependency issues (in my case I first had to completely remove and reinstall homebrew and all formulae, temporarily breaking, well, all of my other projects just to try this one)... the first thing one is greeted with after the rails new command is: "Update config/database.yml with your database credentials". Add an example? Perhaps mention if you used homebrew to install Postgress the credentials to add to database.yml are username: [mac login name] and password : [blank] to the development section?

And if just entirely opposed to the start-up simplicity and bullet-proofing that Docker offers, then perhaps include a specific Postgres recommendation and example? Perhaps mention
brew install postgres
if someone does not have it already installed. And perhaps mention the pg gem cannot be compiled unless Postgres is installed, so installing Postgres is not only a precondition of running Jumpstart, it is a precondition to even installing Jumpstart.

But the dependency madness of the current non-dockerized approach runs even deeper... if a dev once upon a time had Postgres 9.3 running from way back in the dark pre-docker days for an older Rails project, and if they now re-install Postgres via homebrew, it will look like it works/starts, but the Postgres logs will show the service failed with "The data directory was initialized by PostgreSQL version 9.3, which is not compatible with this version 13.3".

BTW the solution to that dependency issue was to destroy (then reinit) the older Postgres database lurking in /usr/local/var/postgres before you can run 12 or 13:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

IMO the reason the cool kids skip all this time-wasting dependency nonsense and instead provide a docker-based development startup is so they offer a quicker, bullet-proof, uniform, out-of-the-box, "it just runs" experience for every developer who wants to try their cool stuff. (After which, any devs who want to un-dockerize it have a COMPLETE template of what to install locally if desired.)

Yes, I know there "many" different ways to Dockerize a Rails dev environment. So what? I suggest pick one, document it, and give people a 2 minute startup to see your cool stuff instead of a, well, I guess now it's 3 hours to finally identify and fix dependency issues.