Hi, as promised a week or so, here's the update on the progress for capistrano-nginx-postgresql.
So we have the plugin working for capistrano 3.1 in the projects v0.1 branch<https://github.com/kalys/capistrano-nginx-unicorn/tree/v0.1> . I was manually testing it a lot over the weekend (for both rbenv, and rvm) and it seems to be fine. There are a couple things, I don't fancy: it's also fiddling with logrotate support, there are some Cap2 leftover files in the project. But since I don't have push privileges to the repo I'm leaving it for now. So: - is this plugin better aligned with capistrano non-provisioning policy? At it's core it manages 3 config files for nginx and unicorn. - should we try to bring it to capistrano github namespace? - if the above is yes, I'm split on the idea of collaborating with current project owner or just forking the project. I think the current project owner isn't really responsive and didn't work much with Capistrano 3 (even compared to me, and I started playing with it ~2weeks ago). Bruno On Thursday, March 20, 2014 2:26:49 PM UTC+1, Bruno Sutic wrote: > > Okay great! > I've pushed the code. > > Also, I made a not-so-big-refactor that introduces a lot of diff (moving > code from one file to another). > If you want, we can use that pull > request<https://github.com/capistrano/postgresql/pull/1> for > comments and other updates. > > Also, please let me know if you think we need to enforce some special git > workflow, versioning or other rules.. > > Bruno > > On Thursday, March 20, 2014 8:34:22 AM UTC+1, Lee Hambley wrote: >> >> Hi Bruno, >> >> All done, it's private for now, I'll help you review it before we make it >> public. >> >> - Lee >> >> Lee Hambley >> -- >> http://lee.hambley.name/ >> +49 (0) 170 298 5667 >> >> >> On 19 March 2014 17:18, Bruno Sutic <bruno...@gmail.com> wrote: >> >>> Hi Lee, >>> my github username is "bruno-". Here's the profile, so there's no >>> mistakes link <https://github.com/bruno-> >>> >>> Also, thank you for letting me know about the potential issues with >>> database user that can change schemas and grants. >>> If an app needs so strict environment I guess this plugin is not >>> appropriate. I'll make sure to outline that in the README. >>> >>> Thanks! >>> >>> >>> On Wednesday, March 19, 2014 4:41:48 PM UTC+1, Lee Hambley wrote: >>> >>>> Hey Bruno, replies inline: >>>> >>>> Just to make sure we're on the same track: capistrano-postgresql does >>>>> not actually *install* postgres package. It presumes postgres is >>>>> installed/provisioned and: >>>>> >>>> >>>> Yeah, I got it, except that "provisioned" is a huge grey area, if it's >>>> set up "properly' the user named in the application database.yml should >>>> have limited read/write to data, but without being able to make schema >>>> changes, or using GRANT. I know most people don't bother to set that up >>>> correctly unless they're in a strongly security audited environment, but >>>> the idea that the application user, can change schemas and grants scares >>>> me. >>>> >>>> >>>>> 1. creates db user and database for the app (is this database >>>>> provisioning?) 2. creates appropriate database.yml >>>>> >>>> >>>> Yeah, same as above, I don't know whether I expect database.yml to be >>>> checked in, synched from somewhere else or manage by a provisioning tool, >>>> it depends a lot >>>> >>>> >>>>> But yea, creating a database (task 1.) is in the grey zone I guess. >>>>> >>>> >>>> As are most things if we apply enough (too much?) analysis to them. >>>> >>>> >>>>> About testing - no problem. I presume, you don't mean manual testing, >>>>> right? >>>>> >>>> >>>> No, we're a bit hung up because prior to the "omnibus" series of >>>> vagrant installations (when it was still a Gem) we used vagrant to script >>>> tests against virtual machines, vagrant has broken that use case now that >>>> it doesn't ship as a Gem anymore. The idea >>>> is to provide a "base box' against which plugins can write integration >>>> tests, and we can be confident that nothing broke. >>>> >>>> >>>>> If not manual, then what tool is used? >>>>> Test-kitchen<https://github.com/test-kitchen/test-kitchen> >>>>> ? >>>>> >>>> >>>> https://github.com/capistrano/capistrano/blob/master/Gemfile#L7 >>>> is what we use right now, but it's no good. Probably with the new >>>> vagrant, we'll use the ssh kit project local ./.ssh/config and mount the >>>> :deploy_to so that we can run operations, and natively assets on the >>>> filesystem state. >>>> >>>> >>>>> Let me know next steps for capistrano-postgresql. >>>>> Also, I'll update you when we have capistrano-nginx-unicorn working. >>>>> >>>>> >>>> Remind me, what's your GH username? >>>> >>>> >>>> >>>>> Thanks, >>>>> Bruno >>>>> >>>>> On Wednesday, March 19, 2014 2:14:53 PM UTC+1, Lee Hambley wrote: >>>>> >>>>>> > - Lee, do you think it's a good idea we transfer >>>>>> capistrano-postgresql gem to capistrano/postgresql? >>>>>> >>>>>> Actually, this is a tricky one, if you're prepared to deal with it, >>>>>> absolutely. But the problem falls on the tricky line between >>>>>> infrastructure >>>>>> provisioning, and application deployment. For example I think I would >>>>>> resist officially supporting a capistrano plugin that installed apt >>>>>> packages according to some magic formula, but we support bundler out of >>>>>> the >>>>>> box. We support database migrations, but provisioning the database >>>>>> almost >>>>>> rubs me the wrong way. >>>>>> >>>>>> I'll allow it, but please forgive me if there's something else you >>>>>> write in the future, and my not-entirely-scientific method of deciding >>>>>> what >>>>>> to embrace, and not rejects something else. >>>>>> >>>>>> - after capistrano-nginx-unicorn is working for capistrano 3, can we >>>>>> do the same for that one? >>>>>> >>>>>> Yes, and in a perfect world, I might push you to test them when I get >>>>>> the capistrano test VM to a working state. >>>>>> >>>>>> Lee Hambley >>>>>> -- >>>>>> http://lee.hambley.name/ >>>>>> +49 (0) 170 298 5667 >>>>>> >>>>>> >>>>>> On 19 March 2014 13:59, Bruno Sutic <bruno...@gmail.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> I'd like to provide an update to this incentive. >>>>>>> >>>>>>> So, I've been investigating existing plugins for capistrano 2 (since >>>>>>> my app was already working with it): >>>>>>> - >>>>>>> capistrano-nginx-unicorn<https://github.com/kalys/capistrano-nginx-unicorn>works >>>>>>> great for nginx + unicorn >>>>>>> - I wanted to abstract postgresql management as well. Didn't find an >>>>>>> existing plugin so I wrote my own >>>>>>> capistrano2-postgresql<https://github.com/bruno-/capistrano2-postgresql> >>>>>>> . >>>>>>> >>>>>>> With the above 2 plugins, deploying basic rails apps is a breeze. >>>>>>> deploy.rb stays in ~30 lines and a user does not have to bother writing >>>>>>> custom tasks. Most important of all: ssh-ing to the server wasn't >>>>>>> necessary >>>>>>> at all! >>>>>>> >>>>>>> It would be great (and beneficial for others, especially newcommers) >>>>>>> to have a similar setup for capistrano 3. Here's the progress on that: >>>>>>> - I wrote >>>>>>> capistrano-postgresql<https://github.com/bruno-/capistrano-postgresql> >>>>>>> cap3 >>>>>>> plugin/gem that deals with postgresql. I was banging on it today and it >>>>>>> seems to work ok. >>>>>>> - capistrano-nginx-unicorn support is on the >>>>>>> way<https://github.com/kalys/capistrano-nginx-unicorn/pull/19> >>>>>>> . >>>>>>> >>>>>>> Suggestions: >>>>>>> - Lee, do you think it's a good idea we transfer >>>>>>> capistrano-postgresql gem to capistrano/postgresql? >>>>>>> - after capistrano-nginx-unicorn is working for capistrano 3, can we >>>>>>> do the same for that one? >>>>>>> >>>>>>> I still have a couple of things to understand about cap 3, but after >>>>>>> the above is done, I'd be glad to write an entry level tutorial for >>>>>>> deploying rails apps with cap 3. >>>>>>> >>>>>>> Let me know your feedback! >>>>>>> Bruno >>>>>>> >>>>>>> On Saturday, March 15, 2014 3:43:46 PM UTC+1, Bruno Sutic wrote: >>>>>>>> >>>>>>>> Hi Lee, >>>>>>>> your reply is encouraging! >>>>>>>> As I'll be working on this for my own needs, I'll try to contribute >>>>>>>> back in some way mentioned in the post above. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> On Friday, March 14, 2014 6:13:23 PM UTC+1, Lee Hambley wrote: >>>>>>>>> >>>>>>>>> I'd like to start a discussion about giving more exposure to >>>>>>>>>> specific capistrano plugins and ways how I could get involved. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Great! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Here's a bit of the background which I think I share with a lot >>>>>>>>>> of capistrano users: >>>>>>>>>> I'd like to setup my rails app deployment using the standard >>>>>>>>>> stack of postgres + unicorn + nginx. While at it, I'd like to do it >>>>>>>>>> with >>>>>>>>>> minimum config and boilerplate. And god forbid - I also do not want >>>>>>>>>> to ssh >>>>>>>>>> to the server for *any of the tasks*. >>>>>>>>>> (premise here is that server if fully provisioned of course) >>>>>>>>>> >>>>>>>>> >>>>>>>>> That's not too far off the mark! >>>>>>>>> >>>>>>>>> >>>>>>>>> Now, I'm doing a research on capistrano unicorn plugins. I'm a >>>>>>>>>> "dumb user" and I want a plugin to handle unicorn scripts and >>>>>>>>>> configs for >>>>>>>>>> me - pretty standard stuff. >>>>>>>>>> It turns out there is a bunch of plugins and their forks our >>>>>>>>>> there. It's totally messy, as you can see here: >>>>>>>>>> https://github.com/sosedoff/capistrano-unicorn/issues/82 >>>>>>>>>> I'm thinking we really do not need all these plugins that all try >>>>>>>>>> to do one (simple?) thing. >>>>>>>>>> >>>>>>>>>> Questions / suggestions: >>>>>>>>>> - is it a good idea to give more highlight to specific plugins on >>>>>>>>>> the capistrano home page? Like for example here: >>>>>>>>>> http://capistranorb.com/documentation/frameworks/ruby-on-rails/ >>>>>>>>>> >>>>>>>>> >>>>>>>>> Absolutely, it's written as a Jekyll site so that plugin authors >>>>>>>>> can send PRs to add themselves! >>>>>>>>> >>>>>>>>> >>>>>>>>>> - or even make a step further and ask the plugin owners to move >>>>>>>>>> the plugins to github.com/capistrano? >>>>>>>>>> >>>>>>>>> >>>>>>>>> We already invited the plugin authors we came across (mostly due >>>>>>>>> to v3 upgrade related questions and problems) to host their plugins >>>>>>>>> with >>>>>>>>> us, under the Capistrano name. >>>>>>>>> >>>>>>>>> >>>>>>>>>> That way capistrano community is committed and focused on >>>>>>>>>> improving small number of plugins. >>>>>>>>>> >>>>>>>>> Also, newcommers to capistrano are clearly pointed to what they >>>>>>>>>> should use and they do not have to waste time on investigation and >>>>>>>>>> trying >>>>>>>>>> out various plugins (like I did) >>>>>>>>>> . >>>>>>>>>> >>>>>>>>> >>>>>>>>> That's a problem best solved by a plugin directory, or example >>>>>>>>> videos or tutorials showing people how to get started with common >>>>>>>>> stack >>>>>>>>> http://roots.io/screencasts/ is a great example of that. >>>>>>>>> >>>>>>>>> >>>>>>>>>> Involvement: >>>>>>>>>> If the above suggestions are aligned with capistrano goals I >>>>>>>>>> would like to offer time to make this happen. Here are the tasks I'd >>>>>>>>>> like >>>>>>>>>> to do: >>>>>>>>>> - do the work on investigating the best (working) capistrano >>>>>>>>>> plugins for unicorn, nginx and postgres >>>>>>>>>> - submit pull requests (or just communicate to maintainers) so >>>>>>>>>> that chosen plugins are highlighted on this page: >>>>>>>>>> https://github.com/sosedoff/capistrano-unicorn/issues/82 >>>>>>>>>> >>>>>>>>> >>>>>>>>> Absolutely, please feel free to add anything you think it useful >>>>>>>>> to the documentation site, we're not precious about some arbitrary >>>>>>>>> measure >>>>>>>>> of purity, or worthiness for improvements, all improvements are >>>>>>>>> gladly >>>>>>>>> received. Perversely as the authors, we're the worst people to write >>>>>>>>> beginner documentation! >>>>>>>>> >>>>>>>>> >>>>>>>>>> Let me know how you like the idea! >>>>>>>>>> >>>>>>>>> >>>>>>>>> I do, it should be noted, that we'll be doing more around this >>>>>>>>> area once we are launched with Harrow.io, as common >>>>>>>>> plugins/integrations will be important, and Harrow should include >>>>>>>>> autodiscovery for common things. >>>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Capistrano" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to capistrano+...@googlegroups.com. >>>>>>> To view this discussion on the web, visit >>>>>>> https://groups.google.com/d/msgid/capistrano/7d51990a-1b0a- >>>>>>> 4c01-97fe-179cb7e08172%40googlegroups.com<https://groups.google.com/d/msgid/capistrano/7d51990a-1b0a-4c01-97fe-179cb7e08172%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Capistrano" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to capistrano+...@googlegroups.com. >>>>> To view this discussion on the web, visit https://groups.google.com/d/ >>>>> msgid/capistrano/4e14255c-4576-4b41-9d8a-caf6a1a4bd0c% >>>>> 40googlegroups.com<https://groups.google.com/d/msgid/capistrano/4e14255c-4576-4b41-9d8a-caf6a1a4bd0c%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Capistrano" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to capistrano+...@googlegroups.com. >>> To view this discussion on the web, visit >>> https://groups.google.com/d/msgid/capistrano/2ad34a72-0c6d-41d3-b890-18eba1188a71%40googlegroups.com<https://groups.google.com/d/msgid/capistrano/2ad34a72-0c6d-41d3-b890-18eba1188a71%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- You received this message because you are subscribed to the Google Groups "Capistrano" group. To unsubscribe from this group and stop receiving emails from it, send an email to capistrano+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/capistrano/407c93c6-96f3-470a-a33f-05594f75d2c6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.