Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1424182937
Torry
2015-02-17 17:22
2015.10.11
Продажа torry.net


4-1273820240
vip
2010-05-14 10:57
2015.10.11
Помогите передать сочетание клавиш Ctrl+END


2-1400838886
mfender
2014-05-23 13:54
2015.10.11
Ерунда с записью/чтением структуры в потоке


15-1424555905
Kilkennycat
2015-02-22 00:58
2015.10.11
Небольшой крик души.


2-1400185923
mfender
2014-05-16 00:32
2015.10.11
Удивительное рядом