Спасибо за участие в проекте Tinkoff Invest!
- Сделайте fork проекта
- Склонируйте репозиторий на свой локальный компьютер
git clone https://github.com/username/invest-python.git
Вы должны использовать свой username вместо
username
- Создайте новую ветку для ваших изменений
git checkout -b branch_name
- Добавьте изменения и выполните команды на локальной машине (см. ниже)
- Установите зависимости
- Проверьте свой код с помощью тестов и линтеров
- Создайте коммит своих изменений. Формат описан ниже
git add . git commit -m "feat: add new feature"
- Отправьте свои изменения на github
git push
- Создайте Pull Request в этот репозиторий
Мы придерживаемся соглашений Conventional Commits для наименование коммитов.
A specification for adding human and machine readable meaning to commit messages.
Body и Footer можно указать по желанию.
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│ │
│ └─⫸ Commit Scope: grpc, async, mypy, schemas, sandbox
│
└─⫸ Commit Type: feat|fix|build|ci|docs|perf|refactor|test|chore
feat | Features | A new feature |
---|---|---|
fix | Bug Fixes | A bug fix |
docs | Documentation | Documentation only changes |
style | Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) |
refactor | Code Refactoring | A code change that neither fixes a bug nor adds a feature |
perf | Performance Improvements | A code change that improves performance |
test | Tests | Adding missing tests or correcting existing tests |
build | Builds | Changes that affect the build system or external dependencies (example scopes: mypy, pip, pytest) |
ci | Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Github Actions) |
chore | Chores | Other changes that don't modify src or test files |
revert | Reverts | Reverts a previous commit |
Для работы с проектом рекомендуем использовать poetry.
Также рекомендуем использовать таск раннер make. Все команды описаны в Makefile. Вы можете их скопировать и запускать напрямую.
make install-poetry
make install
По умолчанию, poetry создает виртуальное окружение в директории ~/.cache/pypoetry/virtualenvs/
. Чтобы создавать виртуальное окружение в директории проекта, выполните команду:
poetry config virtualenvs.in-project true
Вы можете сами создать виртуальное окружение в директории проекта:
python -m venv .venv
poetry будет использовать его.
make test
make lint
make format
make download-protos
По дефолту загружает из ветки main
.
make gen-grpc
Затем, добавить изменения в модули:
- tinkoff/invest/__init__.py
- tinkoff/invest/async_services.py
- tinkoff/invest/schemas.py
- tinkoff/invest/services.py
Можно упростить все до одной команды.
make gen-client
Релиз новой версии происходит автоматически после слияния изменений в main ветку.