WedX - журнал о программировании и компьютерных науках

Являются ли драгоценные камни github менее стабильными, чем драгоценные камни rubyforge?

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

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

Обновление: этот вопрос сейчас немного спорный. гемы Github больше не существуют и гемы rubyforge будут перемещены на rubygems.org.

11.07.2009

  • Это не отвечает на ваш вопрос, но в сообщении блога под названием «Не забывайте Rubyforge» (judofyr.net/posts/dont-forget-about-rubyforge.html), автор рассказывает об использовании gem-сервера Rubyforge для обычных выпусков и о некоторых проблемах, связанных с использованием github в качестве gem-сервера. 12.07.2009

Ответы:


1

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

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

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

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

11.07.2009

2

Что я заметил, так это снижение качества 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 в качестве основного исходного кода, поэтому вам не нужно перенастраивать свою среду, чтобы определить, устанавливать ли рельсы-рельсы или рельсы.

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

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

--

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

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

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

20.07.2009

3

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

05.10.2009

4

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

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

20.01.2010
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]