Являются ли github gems менее стабильными, чем rubyforge gems?

StackOverflow https://stackoverflow.com/questions/1112875

  •  12-09-2019
  •  | 
  •  

Вопрос

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

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

Обновить:Сейчас этот вопрос немного спорный. Драгоценные камни Github не существуют, и драгоценные камни из ковки рубинов будут перемещены в rubygems.org.

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

--

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

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

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

--

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

На мой взгляд, эта простота может привести к снижению качества.Более менее квалифицированные разработчики начали распространять GEMS, потому что это так же просто, как создать новый проект с помощью Jeweller (или аналогичной библиотеки) и отправить его в репозиторий 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 в качестве основного источника, так что вам не нужно перенастраивать свою среду, чтобы определить, следует ли устанавливать рельсы-рельсы или рельсы.

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

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

--

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top