How to upgrade ruby 1.9 cartridge in exsting OpenShift Online application? - ruby

I have an existing OpenShift Online app that I created with a Ruby 1.9 cartridge.
Now that the Ruby 2.0 cartridge is available I'd like to "upgrade" my app to use that, but I can't figure out how to do it.
I tried doing an 'rhc cartridge-add ruby-2.0 -a ' but it says the cartridge isn't available.
I created a sample rails 4/ruby 2.0 app in my OpenShift Online account so I know the cartridge exists, but for some reason my ruby 1.9 app doesn't know about it.
I'm hoping I don't have to create a whole new app and then migrate my code over, re-populate the database, modify the Gemfile, etc.
Has anyone tried to do this and had success? This will be a periodic task for me, upgrading ruby and rails as they become available. I've upgraded rails already and that mostly involved gem and Gemfile changes, but the ruby cartridge upgrade seems different.
I'm thinking this has to have been worked out. Otherwise, established production apps could never have their language cartridges upgraded...?

You can not remove or upgrade a web cartridge (the main cartridge for your application). You will have to create a new application with the upgraded cartridge that you want to use and migration your application over manually. You might be able to use the rhc snapshot save & rhc snapshot restore commands, but I'm not sure if that works between different versions of the same cartridge.

Related

How can I easily review a server installed dependencies for unpatched plugins?

I am working on a server migration and upgrade, and I don't code in Ruby at all.
Is there an easy way for me to scan / review the gemfile / installed dependencies to check that latest updated / unpatched dependencies?
The code references to a hundred at least dependencies and I am not sure which are no longer the latest stable version.
You can try bundle with the outdated command and using the --strict parameter to make sure it lists only compatible gems:
bundle outdated --strict
But like I said in my comment above, you usually want to know what you are doing if you plan to upgrade any gem. Any changes to the API or functionality of a gem may break part of or the entire codebase. Make sure you have working backups.

Adding Gems to Scala play application

I am currently deploying my application on Heroku.
I require access to some gems from within my Scala (Play framework) application. Is there any way to do this? I tried including a Gemfile, but that makes it into a Ruby application. From what I understand their documentation says that it is only possible for Ruby/Rails applications.
As said, Play is Scala, and so as nothing to do with Ruby gem.

Migrating from PyroCMS 2.1.x to 2.2.x

Im developing a shopping cart system for PyroCMS, but moving my code to 2.2.1 is causing me a few headaches.
I cant find any links that describe the technical changes or how to migrate my existing code over to it.
Is there a public list of technical changes that I can use as a reference?
thanks in advance.
this is the change log, you can take a look at new changes
http://docs.pyrocms.com/2.2/manual/reference/changelog
Upgrade guide from 2.1.x to 2.2.0 (note step 8 for addons)
Upgrade from 2.2.0 to 2.2.1
Essentially 2.1 to 2.2 needs some care, 2.2.0 to 2.2.1 should be a straightforward backup and replace of the system directory if you're not using Git (if you do have the time/ability to learn/use Git, it's hugely beneficial for keeping track of changes).
…and of course always do PyroCMS upgrades on a dev server because it invariably breaks in a way you're not expecting.

How can you retrieve the currently building revision from within a custom Heroku buildpack?

I have a catalog of builds indexed by git revision stored on s3 by our CI server. Instead of performing a build at deploy time, I would like to just download a pre-built application, unpack it and go.
I'm trying to accomplish this with a custom buildpack, but in order to do so, I need for it find out which revision of the code is being compiled. Sadly (for me), I can not find this information anywhere in the environment.
It seems like this is something that ought to be discoverable somehow, but I'm completely flummoxed as to where.
You might want to take a look at the (not officially supported) heroku-anvil plugin, which includes the heroku release command to push externally created slugs to a Heroku app. It was originally designed for working with slugs created with Anvil, but should work for any TAR GZ, as long as it can be run on Heroku. For example you could do something like this:
$ heroku release https://s3.amazonaws.com/my-bucket/slugs-000.tgz -a myapp-staging
Releasing to myapp-staging.heroku.com... done, v42

how to downgrade from Rails 3.1.1 to Rails 3.0.3

I created an App in Rails 3.1.1 but now I want to downgrade it to Rails 3.0.3. Will replacing rails version in gemfile do given the new file structure of Rails 3.1.1.
No, you will have to get rid of asset pipeline (maybe something else). If you haven't gone far, it might be easier to just regenerate the app.
The major change is the assents folder. Transfer the data into public folder for 3.0

Resources