Текущий архив: 2015.10.11;
Скачать: CL | DM;
Вниз
Подскажите, как организовать сеть OpenSource проектов в Интернете Найти похожие ветки
← →
SOFT_FOR_YOU © (2015-02-10 14:52) [0]В адрес моих библиотек, и особенно CrystalLUA, звучала обоснованная критика на тему, почему архив расположен на каком-то narod.ru, а не нормальном ресурсе.
Я начал выкладывать проекты в SourceForge, но управление мне пока тоже не нравится.
Прошу посоветовать статьи на хабре или ещё где, а так же собственные размышления, как правильно организовать проекты.
Я нуб в этой сфере, поэтому просьба сообщать информацию поразвёрнутее.
Сложности:
* заливать хочу с помощью какого нибудь SVN, Git или Hg
* разделение версий на альфа-бета + иметь собственные ветки, видимые или невидимые для желающих поработать над модернизацией проекта
* определять какой код проходит в релиз, а какой нет - должен я
* возможность скачать всё одним архивом или отдельные файлы, не устанавливая на своей машине SVN/Git/Hg клиент
* ! проекты ссылаются друг на друга и синхронизация должна происходить автоматически (в Hg например есть subrepository, но вроде бы он не автоматизирован)
Сеть проектов:
* CachedBuffers - библиотека для потоковой обработки данных. Суть - некий аналог стрима, только действует через кеширование памяти и несколькими автоматизированными операциями. Отдельное внимание для перекодировщиков из одного стрима в другой.
* UniConv - универсальная библиотека для текстовых кодировок. Функциональность похоже на iConv или LibICU, но заточка на все поддерживаемые BOM и все кодировки, которые могут встретиться в XML/HTML + преобразования для XML/HTML и ещё пара фишек.
* CachedArchives - универсальная библиотека для работы с популярными методами сжатия и архивами: LZO, ZLib, Zip, 7zip, Rar. Работает через CachedBuffers.
* CachedTexts - библиотека для парсинга и записи текстов в разных кодировках. Одной из фишек будет быстрый XML парсер. Использует и CachedBuffers и UniConv.
Ещё будут:
* CrystalLUA - не использует ни одной из вышеперечисленных библиотек
* ApolloXML - использует CachedBuffers, UniConv и CachedTexts. А может быть и CachedArchives
← →
DVM © (2015-02-10 16:10) [1]
> SOFT_FOR_YOU © (10.02.15 14:52)
Все твои сложности от неумения работать с системами контроля версий.
Ты выбери какую нибудь одну, советую GIT и займись ее изучением.
Вот хорошая книга по GIT на русском:
http://habrahabr.ru/post/150673/
вот ее вторая версия:
http://habrahabr.ru/company/enterra/blog/241525/
На мой взгляд, интерфейс на SourceForge неудобный.
Гораздо удобнее на github или bitbucket. Последний, кстати, позволяет создавать и закрытые репозитории бесплатно.
> * ! проекты ссылаются друг на друга и синхронизация должна
> происходить автоматически (в Hg например есть subrepository,
> но вроде бы он не автоматизирован)
Это спорный момент, стоит ли так делать. Дело в том, что если проект зависит от какого либо другого проекта, то эта зависимость должна быть четко от какой то версии иначе чревато тем, что при изменении зависимостей все поломается.
← →
SOFT_FOR_YOU © (2015-02-10 16:16) [2]> DVM © (10.02.15 16:10) [1]
> Все твои сложности от неумения работать с системами контроля
> версий.
Да я и в SVN работаю, и в Hg
Вопрос в том, как организовать OpenSource проекты, да ещё и ссылающиеся друг на друга
> Ты выбери какую нибудь одну, советую GIT и займись ее изучением.
> Вот хорошая книга по GIT на русском:
Благодарствую!
> На мой взгляд, интерфейс на SourceForge неудобный.
> Гораздо удобнее на github или bitbucket. Последний, кстати,
> позволяет создавать и закрытые репозитории бесплатно.
Какие расценки на гитхабе и что дают дополнительные опции?
> Это спорный момент, стоит ли так делать. Дело в том, что
> если проект зависит от какого либо другого проекта, то эта
> зависимость должна быть четко от какой то версии иначе чревато
> тем, что при изменении зависимостей все поломается.
Я предполагаю, что перед релизом буду проверять, нормально ли компилятся зависимые проекты
← →
DVM © (2015-02-10 16:35) [3]
> SOFT_FOR_YOU © (10.02.15 16:16) [2]
> Я предполагаю, что перед релизом буду проверять, нормально
> ли компилятся зависимые проекты
Нормально компилиться - это еще не показатель того, что ничего не поломалось. Руками проверять - есть шанс что-то забыть.
Тут придется обкладывать все проекты кучей тестов и запускать эти тесты. Тогда будет хоть какая то гарантия. Собственно есть системы автоматизирующие все это, Jenkins, например, или Bamboo (от создателей bitbucket).
← →
SOFT_FOR_YOU © (2015-02-10 17:09) [4]Ясно
Буду разбираться
Спасибо!
← →
SOFT_FOR_YOU © (2015-02-11 22:02) [5]В SVN есть поддержка externals, путного аналога которому нет на в Git, ни в Hg
Но github не работает с SVN
Следовательно нужно выбирать пару SourceForge + SVN
Может есть у кого толковая статья, как их получше сдружить?
А так же замутить возможность автоматически архивировать. Мне например нужны архивы "source.zip", "benchmarks.zip" и "all.zip". И я хочу, закоммитив CachedBuffers.rar получить обновлённые архивы "source.zip" и "all.zip". А может быть и автоматически скомпилировать benchmark1.exe и benchmark2.exe, и чтобы архив "benchmarks.zip" тоже обновился.
← →
SOFT_FOR_YOU © (2015-02-11 22:03) [6]*закоммитив CachedBuffers.pas
← →
SOFT_FOR_YOU © (2015-02-11 22:50) [7]Кстати Google Code, судя по описанию, поддерживает SVN. Кто что может по нему сказать?
← →
DVM © (2015-02-12 10:20) [8]
> SOFT_FOR_YOU © (11.02.15 22:50) [7]
у SVN полно других недостатков, терпеть которые при возможности использовать Git только из за :externals, имхо, не имеет смысла. Это :extrnals весьма корявое решение, кстати. А у Git есть аналог ему Git Submodule : http://git-scm.com/book/ru/v1/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-Git-%D0%9F%D0%BE%D0%B4%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8
← →
SOFT_FOR_YOU © (2015-02-13 21:47) [9]Всё-таки с этими сабмодулями и суперрепозиториями в github не понятно.
Давайте на конкретной ситуации.
Допустим каждый проект состоит 1-2 pas файлов (можно поместить в "sources"), папок "demos" и "help".
И как с точки зрения хотя бы подмодулей организовать следующую сеть проектов:
1) CachedBuffers
исходники: CachedBuffers.pas + CachedStreams.pas
demos
help
2) UniConv
исходники: UniConv.pas
demos
help
3) CachedArchives
исходники: CachedArchives.pas
demos
help
ссылается на CachedBuffers.pas
4) CachedTexts
исходники: CachedTexts.pas
demos
help
ссылается на CachedBuffers.pas + UniConv.pas
5) ApolloXML
исходники: ApolloXML.pas
demos
help
ссылается на CachedBuffers.pas + UniConv.pas + CachedTexts.pas
Так вот я хочу, чтобы пользователь, клонируя или синхронизируя бранчи, всегда получал самое актуальное состояние зависимых проектов
Как сделать?
Вариант слить всё в одно не котируется потому, что идеологически проекты разные
← →
SOFT_FOR_YOU © (2015-02-16 10:51) [10]up что ли
← →
SOFT_FOR_YOU © (2015-02-25 14:51) [11]Удалено модератором
Примечание: Правила читаем и уважаем
Страницы: 1 вся ветка
Текущий архив: 2015.10.11;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.009 c