Различия между версиями 2 и 3
Версия 2 от 2021-02-10 22:15:52
Размер: 1777
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2021-02-10 23:05:04
Размер: 4037
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 17: Строка 17:
   * Примеры: (разные), [[pep:pep-635]] и его товарищи
Строка 18: Строка 19:
   * комитет по принятию
   * [[pep:pep-0572]] — формальная причина «выхода на пенсию»
 * https://pypi.org
 * <<Date(2021-02-10T22:15:52+0300)>>: ''288,767 projects, 2,378,715 releases, 3,869,692 files, 484,667 users''
  * Несколько __сотен__ несвободных проектов
 *
   * [[pep:pep-0572]] — формальная причина «выхода на пенсию» ([[https://mail.python.org/pipermail/python-committers/2018-July/005664.html|письмо]])
   * ⇒ комитет по принятию
 * [[https://pypi.org|Python Package Index]]
  * <<Date(2021-02-10T22:15:52+0300)>>: ''288,767 projects, 2,378,715 releases, 3,869,692 files, 484,667 users''
   * Несколько __сотен__ несвободных проектов, остальные — свободные
  * [[https://packaging.python.org|Python Packaging User Guide]]
  * https://readthedocs.org — документация
  * (никто не мешает использовать GH или вообще что угодно)
  * История с `pip search` ([[https://github.com/pypa/pip/issues/5216#issuecomment-744605466|баг]], [[https://user-images.githubusercontent.com/1200832/102125654-05a88700-3e18-11eb-80e8-655e1916fac3.png|картинка]])
 * [[https://www.pypa.io|Python Packaging Authority]]
  * См. выше про packaging
  * Разработка стандартов (egg, wheel)
  * Поддержка утилит (pip, setuptools, venv, pipenv)
  * …
Строка 25: Строка 34:
План:

Python:
 * Pypi
  * Pypa
  * others
== Коротко о разработке ==
 * Структура каталогов с Python и системными модулями
 * Linux: пользовательские модули в `~/.local/lib/python3`
Строка 32: Строка 38:
  * Установка модуля [[pypi:figlet]]
Строка 34: Строка 39:
  * {i} Установка модуля [[pypi:pyfiglet]]
Строка 36: Строка 42:
 * [[https://pipenv.pypa.io|Pipenv]] (если успеем)
Строка 37: Строка 44:
Git:
 * История VCS: rcs, cvs, svn; DVCS, git
== Коротко о VCS/DVCS ==
VCS:
 * rcs
 * cvs
 * svn
 * tla, darcs, чёрт в ступе
 * [[https://fossil-scm.org|Fossil]]
Цикл работы с VCS:
 1. Синхронизация
 1. Редактировние
 1. Оформление коммита
 1. Публикация
Проблема: совместная работа над одним корпусом текстов
 * Интерференция изменений
 * Изменения опубликованных исходников задним числом

DVCS:
 * hg, bazaar
 * bitkeeper, git
Цикл работы с DVCS:
 1. Синхронизация
 1. Разработка (в цикле)
   1. Редактировние
   1. Оформление коммита
 1. Публикация

Правила:
 * Одно изменение — один коммит
 * Описательные commit message
 * Ответственная публикация

Пример:
 1.#0 `pull`
 1. Разработка
  1. Редактирование
  1. `commit`
 1. `push`

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

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:

  • rcs
  • cvs
  • svn
  • tla, darcs, чёрт в ступе
  • Fossil

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

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

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

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

DVCS:

  • hg, bazaar
  • bitkeeper, git

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

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

Правила:

  • Одно изменение — один коммит
  • Описательные commit message
  • Ответственная публикация

Пример:

  1. pull

  2. Разработка
    1. Редактирование
    2. commit

  3. push

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

Д/З

  • Установить и научиться пользоваться Python и git

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