Различия между версиями 3 и 4
Версия 3 от 2021-02-10 23:05:04
Размер: 4037
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2021-02-11 09:56:07
Размер: 5537
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 23: Строка 23:
   * Несколько __сотен__ несвободных проектов, остальные — свободные    * Несколько ''сотен'' несвободных проектов, остальные — свободные
Строка 28: Строка 28:
    * [[pypi:pypisearch]] (наверное)
Строка 45: Строка 46:
VCS:
 * rcs
 * cvs
 * svn
 * tla, darcs, чёрт в ступе
 * [[https://fossil-scm.org|Fossil]]
Цикл работы с VCS:
[[RW:Система_управления_версиями|VCS]]:
 * [[RW:Revision_Control_System|rcs]]
 * [[RW:CVS]]
 * [[RW:Subversion]]
 * [[https://fossil-scm.org|Fossil]], [[WP:Comparison_of_version-control_software|чёрт в ступе]]
=== Цикл работы с VCS ===
Строка 56: Строка 56:
Строка 60: Строка 61:
DVCS:
 * hg, bazaar
 * bitkeeper, git
Цикл работы с DVCS:
=== DVCS ===
 * [[http://darcs.net|Darcs]]
 * [[RW:Mercurial]]
, [[RW:Bazaar]]
 * bitkeeper, [[RW:Git]]

===
Цикл работы с DVCS ===
Строка 70: Строка 73:
Правила: Минимальные правила:
Строка 72: Строка 75:
  * (по возможности не вносящий регрессий)
Строка 75: Строка 79:
Остальные правила (ветки, теги и т. п. — определяются дисциплиной разработки)

Структура:
 * Публичный репозиторий
 * Локальная рабочая копия и ''полный'' локальный репозиторий
Строка 76: Строка 86:
 1.#0 `pull`  1.#0 `init`/`clone` (развёртывание)
  * («проблема зарождения жизни»: создание репозитория для ''публикации'')
 1. `pull` (синхронизация)
Строка 79: Строка 91:
  1. `commit`
 1. `push`
  1. `add` (регистрация изменений)
  1. `commit` (фиксация изменений)
 1. `push` (публикация)
Строка 85: Строка 98:
 * Установить и научиться пользоваться Python и git  * Зарегистрировать ''публичный'' репозиторий ([[https://sourcehut.org|SourceHut]], !GitHub, !GitLab, где угодно)
 * Установить и научиться пользоваться командной строкой git в объёме
 * Для windows рекомендуется [[https://git-scm.com/download/win|официальый клиент]], в состав которого входит unix-подобная командная строка — для совместимости с лекциями

Python и открытая разработка

  • (повторение) Свободное лицензирование и Python
  • Открытая разработка:
    • Низкий порог входа-выхода
    • Произвольная мотивация
    • Динамическая профессиональная иерархия
    • Свободное распространение как условие развития
    • Распределённая совместная разработка
    • Информационное пространство (документация/взаимодействие)

Сообщество Python и разработка

  • Сам Python:
    • PEP-ы

      • Примеры: (разные), pep-635 и его товарищи

      • Гвидо
      • pep-0572 — формальная причина «выхода на пенсию» (письмо)

      • ⇒ комитет по принятию
  • Python Package Index

    • 2021-02-10: 288,767 projects, 2,378,715 releases, 3,869,692 files, 484,667 users

      • Несколько сотен несвободных проектов, остальные — свободные

    • Python Packaging User Guide

    • https://readthedocs.org — документация

    • (никто не мешает использовать GH или вообще что угодно)
    • История с pip search (баг, картинка)

  • Python Packaging Authority

    • См. выше про packaging
    • Разработка стандартов (egg, wheel)
    • Поддержка утилит (pip, setuptools, venv, pipenv)

Коротко о разработке

  • Структура каталогов с Python и системными модулями
  • Linux: пользовательские модули в ~/.local/lib/python3

  • pip

    • Куда приезжают .py и запускаемые файлы
    • {i} Установка модуля pyfiglet

  • venv

    • что меняется
  • Pipenv (если успеем)

Коротко о VCS/DVCS

VCS:

Цикл работы с VCS

  1. Синхронизация
  2. Редактировние
  3. Оформление коммита
  4. Публикация

Проблема: совместная работа над одним корпусом текстов

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

DVCS

Цикл работы с DVCS

  1. Синхронизация
  2. Разработка (в цикле)
    1. Редактировние
    2. Оформление коммита
  3. Публикация

Минимальные правила:

  • Одно изменение — один коммит
    • (по возможности не вносящий регрессий)
  • Описательные commit message
  • Ответственная публикация

Остальные правила (ветки, теги и т. п. — определяются дисциплиной разработки)

Структура:

  • Публичный репозиторий
  • Локальная рабочая копия и полный локальный репозиторий

Пример:

  1. init/clone (развёртывание)

    • («проблема зарождения жизни»: создание репозитория для публикации)

  2. pull (синхронизация)

  3. Разработка
    1. Редактирование
    2. add (регистрация изменений)

    3. commit (фиксация изменений)

  4. push (публикация)

Редактор для commit message

Д/З

  • Зарегистрировать публичный репозиторий (SourceHut, GitHub, GitLab, где угодно)

  • Установить и научиться пользоваться командной строкой git в объёме
  • Для windows рекомендуется официальый клиент, в состав которого входит unix-подобная командная строка — для совместимости с лекциями

LecturesCMC/PythonDevelopment2021/00_OpenDevelopment (последним исправлял пользователь FrBrGeorge 2021-02-15 18:45:14)