Вы сохраняете свои инструменты сборки в управлении версиями?

19
задан Community 23 May 2017 в 12:06
поделиться

21 ответ

Существует две философских школы на этом:

  1. Помещенный всего Ваш исходный код в репозиторий.
  2. Помещенный все кто-то должен был бы создать Ваше программное обеспечение за исключением операционной системы и времени выполнения языка в репозиторий.

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

, К сожалению, система сборки является своего рода серой областью. Я лично пропускаю его, если я не использую что-то неясное или нестандартное. И что неясно, и нестандартный продиктован средой, в которой Вы работаете. Например, если бы Ваша компания всегда использует MSBuild, но решенный для использования Nant по любой причине на этом проекте, то я включал бы его.

16
ответ дан 30 November 2019 в 01:49
поделиться

Нет, я не делаю, потому что я использую MsBuild, и это - часть платформы.NET так или иначе

0
ответ дан 30 November 2019 в 01:49
поделиться

Что входит в наш репозиторий:

  • Любой код я пишу или любая моя запись студентов

  • Все Make-файлы, тестовые сценарии и вещи того рода

  • , инструменты External, которые мы изменили (мы обычно вставляем целый инструмент, не только, исправляют) включая версию Andrew Hume, Делают

, Что не входит:

  • Исходный код ко всем компиляторам мы используем

  • Источник для оболочки

, Если бы у нас были лучшие инструменты, то мы поместили бы его весь в репозиторий. Для замечательной книги по тому, как сделать это и отслеживать все версии всего начиная с запуска времени, проверьте книгу по Цифровому проекту .

SRC Vesta
1
ответ дан 30 November 2019 в 01:49
поделиться

Код, сборка, тест, документация и любая другая автоматизация. Я обычно даже поместил расписания и любую другую документацию, проекта важную, в репозитории также.

И для большинства проектов, если у меня есть источник для зависимых библиотек, я обычно помещал тех, которые в их собственных репозиториях, таким образом, я могу отследить изменения в них со временем.

Что касается инструментов перед пакетом в устанавливаемых пакетах, я сохраняю их всех в одном большом дереве каталогов на доступном сервере (со старыми версиями). Тем путем я могу указать на любых новых разработчиков на dir и сказать им, что установить (и знать, что у них есть те же версии как остальная часть команды). Я использовал бы репозиторий, но это - излишество, и совместно используемая файловая система легче к доступу всеми. Старые версии сохранены в случае проблем поддержки.

Paul.

1
ответ дан 30 November 2019 в 01:49
поделиться

Лично, я предпочитаю помещать как можно больше инструментов сборки в репозитории, но я разграничиваю в IDE и компиляторе.

мне нравится думать это как компромисс: Я могу выбрать между:

  • Документирование необходимые инструменты (включая поддержание той документации) и необходимость установить их каждый раз я должен возвратиться к проекту (и умножить это на каждого дополнительного разработчика на проекте)
  • Помещение инструментов в репозитории, таким образом, они автоматически проверяются с правильной версией.

Для чего-то как IDE, легче, просто документируют его, и большинству разработчиков установят его уже. Для Муравья, Nant, JUnit и т.д. легче включать его в репозиторий.

я особенно как наличие Ant/Nant в репозитории, потому что это позволяет мне включать go.bat/go.sh-script как это:

set ANT_HOME=tools/apache-ant-x.x.x
tools/apache-ant-x.x.x %*

Затем я всегда могу контроль проект, работать, "идут", и он должен разработать проект (предполагающий, что мне установили Платформу JDK/.Net).

1
ответ дан 30 November 2019 в 01:49
поделиться

Не инструмент, но сценарий. Мы используем Муравей . Сценарий build.xml, которые управляют процессом, является объектом управления исходным кодом.

1
ответ дан 30 November 2019 в 01:49
поделиться

Мы не делаем - на самом деле, я никогда не работал на место, которое сделало.

Мы действительно сохраняем вещи как Make-файлы и создаем сценарии и сценарии тестирования в управлении исходным кодом, но никогда муравья или компилятор C или такой.

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

1
ответ дан 30 November 2019 в 01:49
поделиться

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

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

существует две причины сохранить инструменты в своего рода репозитории:

  1. Любой разработчик может легко найти инструменты, в которых они нуждаются.
  2. А копируют любой официальной сборки от прошлого, может быть создан, так, чтобы патч мог быть сгенерирован.
2
ответ дан 30 November 2019 в 01:49
поделиться

Мы - магазин Знатока и ранее магазин МУРАВЬЯ. В дни МУРАВЬЯ мы проверили бы зависимые библиотеки в структуре проекта. Теперь мы только регистрируемся в ресурсах, необходимых для создавания приложения (англичанин, исходный код, ресурсы, и т.д.), но определенно никакие библиотеки.

2
ответ дан 30 November 2019 в 01:49
поделиться

Нет. Большинство магазинов разработки имеет довольно стандартный набор инструментов. Одна идея, тем не менее, состояла бы в том, чтобы сохранить стандарт "быстрой установкой" Wiki или подобный что внешние ссылки к установщикам для всех необходимых инструментов сборки. Запишите это так, чтобы человек с относительно небольшим опытом мог легко настроить машину разработки. Больше расширенной настройки должно было бы сохранить стандартный виртуальный жесткий диск, содержащий все.

Мы делаем, однако сохраняем все остальное в управлении исходным кодом - все сценарии сборки, сценарии SQL, зависимости от файла (т.е. dlls, на который ссылаются, не установленный в GAC или программных файлах) и т.д.

2
ответ дан 30 November 2019 в 01:49
поделиться

Мы спустились по другому пути установки VM, на котором мы делаем наши сборки конечных версий. Это затем заархивировано (но не в систему управления версиями по некоторым причинам).

, Пока у нас есть машина, которая может разместить VM, мы можем воссоздать двоичные файлы. Предоставление нам независимость от базовой ОС.

было несколько issuses подъем liscence менеджера и выполнение, но после этого все было хорошо.

3
ответ дан 30 November 2019 в 01:49
поделиться

Да! мой ответ.

я поместил инструменты сборки как NUnit и NAnt в управлении версиями.

основное правило для меня:

  • сервер сборки должен смочь создать решение.

И сервер сборки я использую, не имеет NUnit, NAnt и т.д. установленный.

сервер сборки очень еще имеет платформу.NET и CruiseControl.NET, и не....

3
ответ дан 30 November 2019 в 01:49
поделиться

Мы не помещаем Инструменты в SVN, который пришел снаружи (Visual Studio, Eclipse, Плагин CDT...).

, Но у нас есть большой набор самозаписанных инструментов (генераторы кода, сделанный на заказ assmeblies для VS и плагин Eclipse), куда мы помещаем источник И двоичные файлы в SVN.

причины этого решения просты технический:

  • Наши инструменты являются очень мелкими и не нуждаются в явной стандартной программе установки для выполнения (таким образом, простой svn контроль оставляет Вас с рабочим набором инструментов)
  • , Наши инструменты изменяют чаще затем сторонние инструменты (таким образом, мы не должны говорить нашим разработчикам обновлять инструменты 3 раза в месяц)
3
ответ дан 30 November 2019 в 01:49
поделиться

Обычно я только добавляю объекты к управлению версиями, которые, вероятно, будут сохраняться один или кто-то еще, с кем я работаю. Внешняя библиотека обычно используется проектом - большинство проектов не находится в бизнесе, переписывают библиотеки, от которых они зависят.

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

3
ответ дан 30 November 2019 в 01:49
поделиться

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

4
ответ дан 30 November 2019 в 01:49
поделиться

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

14
ответ дан 30 November 2019 в 01:49
поделиться

Я обычно работаю с затмением/муравьем на проектах Java. Нет, я не сохраняю JDK, Муравья или затмение при управлении версиями, но:

  • весь мой источник
  • сценарий (сценарии)
  • сборки все сторонние библиотеки в их используемой версии (да, также junit)

причина: я имею почти сам, содержавшая система сборки, любая система с jdk и установленным муравьем смогут создать без сетевого соединения neccecary (списки пакета для внешнего javadoc, в котором также зарегистрировались). Это может быть моим MacBook, рабочим столом окон компаний, любым сервером сборки continious.

6
ответ дан 30 November 2019 в 01:49
поделиться

Мы используем знаток , таким образом, мы только регистрируемся в коде, тестах, файлах конфигурации и конечно pom.xml, нет освобождает, никакие инструменты.

5
ответ дан 30 November 2019 в 01:49
поделиться

Да, я сохраняю ВСЕ, что является частью процесса обеспечения производства программного обеспечения в управлении версиями.

17
ответ дан 30 November 2019 в 01:49
поделиться

Я действительно удивлен всеми ответами «нет, я этого не делаю». Вы не можете надежно построить базу кода, если у вас нет конкретных версий зависимостей, для которых был написан код. Таким образом, это будет включать любые библиотеки DLL, на которые вы ссылаетесь, например, фреймворки для модульного тестирования и имитации, наборы элементов управления пользовательским интерфейсом и т. Д.

Разработчик должен иметь возможность произвести проверку и сборку всего за пару шагов. Есть места, где на это уходит весь день.

2
ответ дан 30 November 2019 в 01:49
поделиться

Нет. Точно нет. Никогда. Ваша VCS должна содержать только ваш код. Если вы хотите, чтобы кто-то мог быстро установить ваш код, вам необходимо предоставить систему распространения. Кто-то, кто хочет установить ваш код, должен использовать либо упакованный двоичный дистрибутив, либо сборку из архива с исходным кодом. Они НЕ должны строиться из VCS. Архив с дистрибутивом - это место, где можно разместить вещи, которые необходимы для сборки вашего проекта, но которые либо генерируются автоматически, либо не являются непосредственно частью вашего проекта. Однако это НЕ место для зависимостей. Если вашему проекту нужны библиотеки ускорения, это должно быть указано в документации как зависимость, и ваша сборка должна завершиться ошибкой, если она не установлена. Ожидается, что сборка пользователя из исходного архива сможет установить зависимость. Пользователь, собирающий из упакованного двоичного дистрибутива, ожидает, что система пакетов решит проблему зависимости. Ожидается, что пользовательская сборка из VCS (т.е. разработчик) установит инструменты сборки, необходимые для вашего проекта.

1
ответ дан 30 November 2019 в 01:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: