1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Spyder

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING.md 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 21:37 caa60a9

Вклад в Spyder

:+1::tada: Прежде всего, спасибо за то, что нашли время внести свой вклад в Spyder! :tada::+1:

Общие рекомендации

На этой странице очень высокоуровнево описано, как внести вклад в Spyder. Пожалуйста, ознакомьтесь с документацией для разработчиков Spyder IDE для получения более подробного руководства о том, как это сделать. Также убедитесь, что вы знакомы с нашим рабочим процессом Github.

Устранение неполадок

Прежде чем публиковать отчёт, пожалуйста, внимательно прочитайте наш руководство по устранению неполадок и поищите в системе отслеживания проблем описание вашей ошибки и проблемы, так как подавляющее большинство ошибок либо дублируются, либо могут быть исправлены на стороне пользователя несколькими простыми шагами. Спасибо!

Отправка полезной проблемы

Отправка полезных, эффективных и точных отчётов о проблемах может значительно улучшить Spyder для всех. Соответственно, пожалуйста, прочтите соответствующий раздел Руководства по устранению неполадок Spyder, в котором подробно описывается, как это сделать.

Самое главное, помимо сообщения об ошибке/трассировки и запрошенной информации об окружении/зависимостях, пожалуйста, убедитесь, что вы включили подробное, пошаговое описание того, что вызвало проблему. В противном случае мы, скорее всего, не сможем найти и исправить её, и вашу проблему придётся закрыть через неделю (7 дней). Спасибо!

Настройка среды разработки

Форкинг и клонирование репозитория

Сначала перейдите к репозиторию Spyder в своём веб-браузере и нажмите кнопку «Fork», чтобы создать личную копию репозитория в своей собственной учётной записи Github. Затем нажмите кнопку «Clone or Download» в вашем репозитории, скопируйте ссылку и выполните следующую команду в командной строке, чтобы клонировать репозиторий:

$ git clone <LINK-TO-YOUR-REPO>

Наконец, установите удалённый источник на официальный репозиторий Spyder с помощью:

$ git remote add upstream https://github.com/spyder-ide/spyder.git

Создание окружения и установка зависимостей

Если вы используете Anaconda или Conda-forge, вы можете создать окружение и установить необходимые зависимости следующим образом:

$ conda create -n spyder-dev -c conda-forge python=3.9
$ conda activate spyder-dev
$ conda env update --file requirements/main.yml

После этого вам необходимо установить специфические зависимости Spyder для каждой операционной системы. Например, если вы работаете на macOS, вам нужно запустить

$ conda env update --file requirements/macos.yml

Вы также можете использовать virtualenv в Linux, но настоятельно рекомендуется использовать conda:

$ mkvirtualenv spyder-dev
$ workon spyder-dev
(spyder-dev) $ pip install -e .

Запуск Spyder

Чтобы запустить Spyder из вашего клона в режиме разработки, с дополнительными проверками и опциями (выполните --help, чтобы увидеть их), запустите его через скрипт bootstrap.py в корневом каталоге репозитория:

$ python bootstrap.py

Обратите внимание, что если вы работаете на macOS 10.15 или более ранней версии, вам потребуется вызвать pythonw вместо python.

Чтобы запустить Spyder в режиме отладки, полезном для отслеживания проблемы, вы можете выполнить:

$ python bootstrap.py --debug

Важное примечание: Чтобы протестировать любые изменения, внесённые вами в исходный код Spyder, вам необходимо перезапустить Spyder или запустить новый экземпляр (вы можете запускать несколько копий одновременно, сняв флажок «Использовать один экземпляр» в разделе «Общие» > «Дополнительные настройки»).

Запуск тестов

Для установки наших тестовых зависимостей под Anaconda:

$ conda env update --file requirements/tests.yml

При использовании pip (только для экспертов) запустите следующее из каталога, где хранится ваш git-клон:

$ pip install -e .[test]

Чтобы запустить тестовый набор Spyder, используйте (из корневого каталога spyder):

$ ## Ветви Spyder

Когда вы начинаете работать над новым pull request (PR), вы должны быть уверены, что ваша работа ведётся на правильной ветви Spyder, и что вы основываете свой PR на Github против неё.

Чтобы помочь вам, проблемы на Github отмечены вехой, которая указывает правильную ветвь для использования. Если нет, следуйте этим рекомендациям:

* Используйте ветвь `5.x` только для исправлений ошибок (*например*, вехи `v5.0.1` или `v5.1.2`).
* Используйте `master`, чтобы вводить новые функции или нарушать совместимость с предыдущими версиями Spyder (*например*, вехи `v6.0beta1` или `v6.0beta2`).

Вы также должны отправлять исправления ошибок в `5.x` или `master` для ошибок, которые присутствуют только в этих соответствующих ветвях.

Для начала работы над новым PR необходимо выполнить следующие команды, заполнив имена ветвей там, где это уместно:

```bash
$ git checkout <SPYDER-BASE-BRANCH>
$ git pull upstream <SPYDER-BASE-BRANЧ>
$ git checkout -b <NAME-NEW-BRANCH>

Изменение базовой ветви

Если вы начали свою работу не в той базовой ветви или хотите перенести её, вы можете изменить базовую ветвь с помощью git rebase --onto, например:

$ git rebase --onto <NEW-BASE-BRANCH> <OLD-BASE-BRANCH> <YOUR-BRANCH>

Например, перенос my_branch из master в 5.x:

$ git rebase --onto 5.x master my_branch

Внесение вклада, который зависит от pull requests в spyder-kernels

Spyder и spyder-kernels разрабатываются совместно, потому что между ними происходит много общения, чтобы запустить код, написанный в редакторе, в консоли IPython. Способ связывания ветвей в их соответствующих репозиториях представлен в таблице ниже:

Ветвь Spyder Связанная ветвь spyder-kernels
5.x 2.x
master (будущая 6.x) master (будущая 3.x)

По этой причине клон spyder-kernels помещается во вложенную папку external-deps репозитория Spyder. Инструкции в этом разделе помогут вам в случае, если вам нужно внести изменения, затрагивающие оба репозитория одновременно.

Первое, что вам нужно сделать, это клонировать проект git-subrepo и следовать этим инструкциям для его установки (в Windows вам нужно использовать Git Bash для их запуска):

git clone https://github.com/ingydotnet/git-subrepo /path/to/git-subrepo
echo 'source /path/to/git-subrepo/.rc' >> ~/.bashrc
source ~/.bashrc

В качестве примера предположим, что (i) ваше имя пользователя Github — myuser; (ii) у вас есть два репозитория git, размещённых по адресам ~/spyder и ~/spyder-kernels, которые ссылаются на https://github.com/myuser/spyder и https://github.com/myuser/spyder-kernels соответственно; и (iii) у вас есть две ветви с именами fix_in_spyder и fix_in_kernel в каждом из этих репозиториев git соответственно. Если вы хотите открыть совместный PR в spyder и spyder-kernels, который связывает эти ветви, вот как это сделать:

  • Перейдите в папку ~/spyder, проверьте вашу ветку fix_in_spyder и замените клон spyder-kernels во вложенной папке external-deps на клон вашей ветки fix_in_kernel:

    $ cd ~/spyder
    $ git checkout fix_in_spyder
    $ git subrepo pull external-deps/spyder-kernels -r https://github.com/myuser/spyder-kernels.git -b fix_in_kernel -u -f
  • Теперь вы можете открыть PR на https://github.com/spyder-ide/spyder и на https://github.com/spyder-ide/spyder-kernels для каждой из ваших ветвей.

  • Если вы вносите дополнительные изменения в ветку fix_in_kernel в spyder-kernels (например, добавляете новый файл, как в примере ниже), вам необходимо синхронизировать их в вашей ветке fix_in_spyder Spyder следующим образом:

    $ cd ~/spyder-kernels
    $ git checkout fix_in_kernel
    $ touch foo.py
    $ git add -A
    $ git commit -m "Adding foo.py to the repo"
    $ git push origin fix_in_kernel
    
    $ cd ~/spyder
    $ git checkout fix_in_spyder
    $ git subrepo pull external-deps/spyder-kernels -r https://github.com/myuser/spyder-kernels.git -b fix_in_kernel -u -f
    $ git push origin
    
  • Примечание: В тексте запроса присутствуют фрагменты кода на языке программирования Python и команды для работы с системой контроля версий Git. Эти фрагменты оставлены без перевода, так как они являются частью технической документации и содержат специфическую терминологию. Исправление в Spyder

Когда ваш PR fix_in_kernel будет объединён, вам необходимо обновить ветку fix_in_spyder в Spyder, потому что клон в репозитории Spyder должен снова указывать на репозиторий spyder-kernel, а не на ваш собственный клон. Для этого выполните:

$ git subrepo pull external-deps/spyder-kernels -r https://github.com/spyder-ide/spyder-kernels.git -b <branch> -u -f

где <branch> должна быть 2.x, если ваша ветка fix_in_spyder была сделана против ветки Spyder 5.x; и master, если вы сделали это против нашей ветки master здесь.

Внесение вклада, зависящего от запросов на вытягивание в python-lsp-server или qtconsole

Как и spyder-kernels, Spyder тесно интегрирован с python-lsp-server, чтобы обеспечить завершение кода, линтинг и сворачивание в своём редакторе; и qtconsole для своей консоли IPython.

В связи с этим клон этих проектов помещается в каталог external-deps, который управляется проектом git subrepo. Если вы хотите сделать запрос на вытягивание в python-lsp-server или qtconsole, который влияет на функциональность в Spyder, пожалуйста, внимательно прочитайте инструкции в предыдущем разделе, поскольку они очень похожи для этих случаев. Резюме этих инструкций, применяемых к этим проектам, следующее:

  1. Сначала вам нужно создать запрос на вытягивание в python-lsp-server или qtconsole с изменениями, которые вы хотите внести там. Предположим, что ветка, из которой создан этот запрос, называется fix_in_external_dep.

  2. Затем вам нужно создать ветку в Spyder (назовём её fix_in_spyder) с исправлениями, требующими этого запроса, и обновить подрепозиторий python-lsp-server. Для этого вам необходимо выполнить следующие команды:

    $ git checkout -b fix_in_spyder
    $ git subrepo pull external-deps/python-lsp-server -r https://github.com/myuser/python-lsp-server.git -b fix_in_external_dep -u -f

если исправление находится в python-lsp-server, или

```
$ git checkout -b fix_in_spyder
$ git subrepo pull external-deps/qtconsole -r https://github.com/myuser/qtconsole.git -b fix_in_external_dep -u -f
```

Если исправление находится в qtconsole. И затем зафиксируйте изменения, которые вам нужно внести в Spyder.

  1. Если вам нужно добавить больше коммитов в fix_in_external_dep, вам необходимо обновить fix_in_spyder этими командами:

    $ git checkout fix_in_spyder
    $ git subrepo pull external-deps/python-lsp-server -r https://github.com/myuser/python-lsp-server.git -b fix_in_external_dep -u -f
    $ git push origin fix_in_spyder

или

```
$ git checkout fix_in_spyder
$ git subrepo pull external-deps/qtconsole -r https://github.com/myuser/qtconsole.git -b fix_in_external_dep -u -f
$ git push origin fix_in_spyder
```
  1. После того как fix_in_external_dep будет объединён, вам необходимо обновить подрепозитории python-lsp-server или qtconsole в вашей ветке fix_in_spyder:

    $ git checkout fix_in_spyder
    $ git subrepo pull external-deps/python-lsp-server -r https://github.com/python-lsp/python-lsp-server.git -b develop -u -f

или

```
$ git checkout fix_in_spyder
$ git subrepo pull external-deps/qtconsole -r https://github.com/jupyter/qtconsole.git -b master -u -f
```

Добавление стороннего контента

Все файлы или группы файлов, включая исходный код, изображения, значки и другие активы, происходящие из проектов за пределами организации Spyder (независимо от лицензии), должны быть сначала одобрены командой Spyder. Всегда консультируйтесь с нами (в Github, Gitter, Google Group и т. д.), прежде чем пытаться добавить контент из внешнего проекта, и делайте это только при необходимости.

Лицензии

Код, рассматриваемый для включения, должен иметь разрешительную (т. е. некопилефтную) лицензию, особенно в следующем порядке предпочтения:

  • MIT (Expat)
  • Общественное достояние (предпочтительно CC0)
  • ISC лицензия
  • BSD 2-clause («Упрощённая BSD»)
  • BSD 3-clause («Новая» или «Модифицированная BSD»)
  • Apache License 2.0

Кроме того, внешние активы (шрифты, значки, изображения, звуки,

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Spyder.git
git@api.gitlife.ru:oschina-mirror/mirrors-Spyder.git
oschina-mirror
mirrors-Spyder
mirrors-Spyder
master