Являются ли самоцветы github менее стабильными, чем самоцветы rubyforge? - PullRequest
1 голос
/ 11 июля 2009

В этом вопросе я упомянул свое предположение, что камни rubyforge более официальные, авторитетные и стабильные, чем вилы github. Один из людей, отвечавших на мой вопрос, сказал, что моё предположение может быть неверным.

Что ты заметил? Используют ли люди github для раннего выпуска и выпуска часто, только помещая стабильные выпуски в rubyforge, или люди выпускают в rubyforge реже по другим причинам (например, rubyforge - это больше хлопот)?

Обновление : Этот вопрос немного спорный. самоцветы Github не существуют , а самоцветы rubyforge будут перемещены на rubygems.org.

Ответы [ 4 ]

4 голосов
/ 20 июля 2009

Что я заметил, так это снижение качества GEM, выпускаемого через GitHub, по сравнению с общим качеством GEMS на RubyForge.

ИМХО есть как минимум два основных объяснения такого поведения:

-

До GitHub 99% Rubyist зависели от Subversion. Вы можете сказать, что вы хотите о Subversion, но он определенно более прост в использовании по сравнению с Git, и все знают о макете ствола / тегов / веток. Затем люди начали переходить в Git. Просто очень ограниченный круг пользователей Subversion начал использовать Git с требуемым уровнем знаний, и, как я заметил, люди начали забывать о тегах.

Когда-то были теги. В Subversion люди использовали для выпуска новой версии на основе определенных тегов, чтобы вы могли легко определить, какую версию вы установили, а какая была стабильной веткой.

В настоящее время я вижу тонны библиотек, постоянно разрабатываемых в основной ветке Git. Нет тегов, нет стабильных веток. В целом, когда библиотеки были выпущены через RubyForge, уровень развертывания был повышен.

-

GitHub больше не мешает публикации. Тем не менее, вы можете легко опубликовать новый GEM, просто вставив gemspec в ваш репозиторий.

По моему мнению, эта простота может привести к снижению качества. Более менее опытные разработчики начали распространять GEMS, потому что это так же просто, как создать новый проект с помощью Jeweler (или подобной библиотеки) и запустить git-репозиторий. Они не знали намного больше об управлении выпусками, обратной совместимости, выпусках выпусков, обслуживании выпусков.

Часто я сталкивался с незаконченными библиотеками, упакованными как GEM только потому, что разработчик забыл удалить файл .gemspec. Каждый коммит вызывал создание нового GEM без видимой последовательности и согласованности.

Я абсолютно за практику "выпускай часто", но когда это имеет смысл. Git обеспечивает отличную поддержку веток, вам не нужно загромождать основную ветвь тоннами несвязанных коммитов и освобождать незавершенный кусок кода, который вы называете библиотеками.

-

И последнее, но не менее важное, что я, вероятно, больше всего ненавижу - неограниченное дублирование одного и того же GEM. Когда RubyForge был бесспорным источником GEM, было довольно легко найти и установить новый проект.

ИМХО, GitHub ввел ненужный уровень сложности. Во-первых, у вас есть GEM, доступный через rubyforge как mygem и через GitHub как username-mygem. Вам часто приходится тратить время на то, чтобы выяснить, какой GEM является наиболее обновленным и содержит основную разработку.

Кроме того, некоторые популярные GEM больше не обновлялись на RubyForge, и многие продолжают использовать их только потому, что RubyGems не уведомляет вас о новых версиях. Легко понять, что если вы установили coolgem выпуск 1.2.4 и ту же библиотеку, которая теперь доступна как superuser-coolgem (выпуск 2.0), RubyGems недостаточно умен, чтобы сообщить вам, что доступно новое обновление.

-

Теперь пришло время для отказа от ответственности.

Я не говорю, что пользователи GitHub производят дерьмовые GEMS по сравнению с RubyForge. Я являюсь пользователем GitHub, и до этого я был пользователем RubyForge. Тысячи GEMS успешно мигрировали из RubyForge в GitHub, не оставляя конечного пользователя в состоянии «который один».

Лучший пример Rails, но я могу упомянуть множество других GEM, включая (но не ограничиваясь ими) Capistrano, Hpricot, RedCloth ... Все эти библиотеки теперь размещены на GitHub, и если вы внимательно посмотрите на них, вы легко узнаете тот же уровень качества, что и раньше.

И последнее, но не менее важное: все эти библиотеки продолжают выпускаться через RubyForge в качестве основного источника, поэтому вам не нужно перенастраивать свою среду, чтобы определить, устанавливать ли rails-rails или rails.

Кроме того, конечный пользователь не подвержен влиянию решений по разработке. Взять, к примеру, Капистрано. Пару месяцев назад Jamis объявил об окончании своей приверженности развитию. Сообщество взяло на себя ответственность за разработку и переместило главный репозиторий из jamis / capistrano в capistrano / capistrano. Что произойдет, если GEM будет выпущен как jamis-capistrano? Все пользователи должны будут переключиться на новый GEM и новый репозиторий с большим количеством хлопот.

Этот сценарий никогда не возникал, потому что RubyForge был и остается главным центром доставки Capistrano.

-

В заключение я, к сожалению, отмечаю общее снижение качества GEM, в основном вызванное тем, что все больше людей обращаются к Ruby и RubyGems без необходимого уровня знаний. То же самое относится к большому количеству плагинов Rails.

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

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

4 голосов
/ 11 июля 2009

Насколько я могу судить, никакой разницы.

Существует огромный диапазон качества / стабильности драгоценных камней из обоих источников. Некоторые из них очень прочные, другие пре-альфа-качества.

Это действительно зависит от самого проекта.

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

0 голосов
/ 20 января 2010

, чтобы окончательно ответить на ваш вопрос: оба упомянутых вами ресурса (rubyforge, github) теперь устарели, поскольку gemcutter является новым и единственным местом для rubygems.

Gemcutter - новый официальный хост RubyGem по умолчанию: http://www.rubyinside.com/gemcutter-is-the-new-official-default-rubygem-host-2659.html

0 голосов
/ 06 октября 2009

Вероятно, менее стабильный и немного более современный :) -r

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...