kuzubov
@kuzubov

GitHub — вопросы по наследованию и структуре проекта

Взялся я значит писать проект и захотел его опубликовать на GitHub. Все бы хорошо, но до этого я не делал подобного, как и не работал с Git даже, но это все лирика… Для начала меня смутило то, что сразу надо давать название проекту… Ну делаю я программу — так мне надо сразу придумать название до написания первой строчки? Как то глупо мне кажется, я же не менеджер и не креатор — пусть они думают потом как назвать лучше и выискивают в ворохе литературы звучные названия… Потом я нашел что можно название репозитория поменять и забил на название — оставил как есть, что первое в голову пришло, потом типо поменяю… Но ряд вопросов остался без ответа:

1. сразу не увидел какая лицензия по умолчанию стоит на публичный проект. GPL или все таки какая то разновидность или ее номер может какой??

2. я использую элементы управления написанные другими людьми. они имеют GPL лицензию и беру исходники на сайте авторов. Так вот эти исходники являются частью моего проекта. То есть они лежат внутри в папке у меня в проекте и к этим путям прикручены все ссылки на использование (PHP + JavaScript). По идее как только я делаю первый комит — то у меня вместе с моим кодом в гит улетает и чужой код в который я даже вторгаться не буду. С другой стороны я могу исключить эти файлы из проекта и любой кто скачает мой проект — сразу попадет на то, что проект не будет работать и будет требовать какие то файлы которые он понятия не имеет где брать.
Дальше больше — те контроллы что я использую меняются со временем. Скажем jQuerry выходит чуть ли не каждую неделю новый и я не могу гарантировать что совместимость останется если взять у авторов самую свежую версию.

Короче вопрос в том — что делать с чужим кодом типо jQuery например или другими подобными контроллами и библиотеками? где их выкладывать? к себе в проект?? как добиться чтобы была именно та версия что мне нужна, а не какая то иная, ведь авторы дописывают библиотеки постоянно?

3. у меня сейчас при входе в проект просто куча папок и файлов видно. А я встречал при ходе вот так же версии у людей и кучу архивов со старыми версиями их программ. как такое делается? как вообще версии делать и добавить возможность скачивать версии? Как указать что текущий коммит это просто переход на другое рабочее место (ну на другом компе я в другой стране решил пописать дальше код например) или этот коммит является стабильным билдом, а а не промежуточным версионированием…
  • Вопрос задан
  • 3362 просмотра
Пригласить эксперта
Ответы на вопрос 4
Mithgol
@Mithgol
Короче вопрос в том — что делать с чужим кодом типо jQuery например или другими подобными контроллами и библиотеками? где их выкладывать? к себе в проект?? как добиться чтобы была именно та версия что мне нужна, а не какая то иная, ведь авторы дописывают библиотеки постоянно?
Возможны следующие варианты:

  • Целиком класть чужой код к себе в проект.  Тогда в проекте будет именно та версия, что нужна.
     
  • Не класть код к себе в проект.  Тогда следует составить в README-файле подробную и понятную инструкцию для пользователей проекта: где раздобыть чужой код, необходимый для работы проекта, и как установить, чтобы всё работало.
     
  • Подключить чужой код в своей проект в виде git-подмодуля.  Пользователь сможет подать простую команду Git, после чего чужой код скачается откуда следует и установится куда надо. Работает только в тех случаях, когда чужой код лежит в общедоступном git-хранилище.
Ответ написан
vsespb
@vsespb
1. да вообще то никакая, все права остаются за вами, единственное в термсах github написано что люди могут ваш код форкать и скачивать.

2. jQuery, почитайте докцию. Убедитесь что то что Вы используете документировано. Они это просто так не выкинут. Укажите на странице проекта с какими версиями тестировалось. Создание дистрибьютива программы, которая установит весь код и библиотеки — это уже «не в компетенции» Github. Либо выкладывайте сами дистибьютив руками, либо пишите readme что как установить.

3. Версии с файлами в архивах можно делать git тэгами, пример github.com/vsespb/mt-aws-glacier/tags
(команды git tag -a mytag и git push --tags)
Ответ написан
Mithgol
@Mithgol
А я встречал при ходе вот так же версии у людей и кучу архивов со старыми версиями их программ. Как такое делается?
Следовало бы дать адрес для примера — тогда станет проще объяснить, что Вы там встретили и как это достигается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы