Каков наилучший способ поддерживать вашу версию Rails в актуальном состоянии?

#ruby-on-rails

#ruby-on-rails

Вопрос:

Приложение, над которым я работаю, было запущено с Rails 3.0.6, я полагаю, что доступна версия 3.0.7, а 3.1 не за горами.

Я понимаю, что в 3.1, вероятно, будут некоторые критические изменения, требующие надлежащего прочтения примечаний к выпуску и т.д., Прежде чем пытаться обновить проект.

Однако мой вопрос заключается в том, что считается наилучшей практикой для обновлений x.x.x и x.x.x? Следует ли к ним относиться по-другому? За исключением критических изменений, лучше ли каждый раз создавать совершенно новый проект и добавлять измененные файлы?

Богатый

Ответ №1:

Лучший способ — всегда указывать ваши Rails и другие версии Gem в вашем Gemfile.

 gem 'rails', '3.0.7'
  

Когда выходит новая версия, вы просто меняете версию, связываете и запускаете свой набор тестов. Просмотр журнала изменений позволит вам оценить, потребуются ли какие-либо изменения. Rails очень хорош в предоставлении предупреждения об устаревании для ваших сегментов кода, поэтому вы должны знать об изменении до того, как оно произойдет. Надеюсь, это поможет, всего наилучшего.

Комментарии:

1. Спасибо, это было именно то подтверждение, которого я добивался.

Ответ №2:

У меня немного неоднозначное мнение по этому поводу.

С одной стороны, вы хотите прагматично подходить к своим обновлениям и оценивать, принесет ли вам время на обновление вашей версии Rails какие-либо выгоды. Иногда это очевидно — повышение скорости работы медленных частей вашего приложения, улучшенные конвейеры или рабочие процессы и т.д. Могут принести очевидные выгоды, и вы можете легко оправдать потраченное время на обновление приложения. Иногда это не так очевидно, и, безусловно, существует большое количество производственных приложений, некоторые из которых очень хорошо известны, все еще работающих под управлением 2.3 и Ruby 1.8.7.

С другой стороны, Rails — это быстро развивающийся проект, и лично я не хотел бы сидеть сложа руки над очень старой версией. Чем дольше вы ждете обновления, тем больше работы вам, вероятно, придется проделать, чтобы соответствующим образом модифицировать ваше приложение.

Если вы чувствуете, что пришло время обновиться, или что обновление — хорошая идея, мой вам совет — создайте новую ветку в вашей системе контроля версий и протестируйте и профилируйте новую версию. Таким образом, вы и остальная часть вашей команды сможете продолжить работу над приложением в старых ветках в обычном режиме, и вы сможете получить хорошее представление о том, сколько работы потребуется для обновления Rails. Затем, если все пойдет ужасно неправильно, вы можете просто удалить новую ветку и продолжить свой веселый путь.

TL; DR

  • Относитесь к обновлениям прагматично — оцените, принесет ли обновление какую-либо реальную, измеримую пользу вашему приложению или вашей команде
  • Всегда тестируйте и профилируйте новые версии Rails (или любой другой зависимости!)