Проект Эйлера блог
Ссылка на github

Project Euler Open Source

Project Euler - это опенсорс проект, который помогает изучить и по-практиковать конструкции различных языков программирования.

Этот репозиторий предоставляет уникальную возможность:

Инструкции по Установке

1. Сделайте "форк" этого репозитория нажатием кнопки "Fork" в правом верхнем углу страницы. Это создаст копию репозитория на вашем GitHub аккаунте.

Кнопка Fork

2. Клонируйте ваш "форкнутый" репозиторий нажатием кнопки "Code":

Кнопка Code

Откроется маленькое окно:

Clone window

Скопируйте из него URL и выполните на своем компьютере команду:

git clone https://github.com/<your-username>/project-euler.git

3. Перейдите в папку с проектом:

cd project-euler

4. Добавьте ссылку на оригинальный репозиторий для будущих обновлений:

git remote add upstream https://github.com/AlexandrAnatoliev/project-euler.git

Примечание: здесь должен быть URL оригинального репозитория, а не "форкнутого" Вами, так что username в нем должно быть AlexandrAnatoliev, а не ваш собственный username.

5. Проверьте ремоуты для своего репозитория:

git remote -v

Вы должны увидеть origin (создается автоматически при клонировании) и upstream ремоуты:

origin  https://github.com/<your-username>/project-euler.git (fetch)
origin  https://github.com/<your-username>/project-euler.git (push)
upstream        https://github.com/AlexandrAnatoliev/project-euler.git (fetch)
upstream        https://github.com/AlexandrAnatoliev/project-euler.git (push)

6. Выполните pull из upstream репозитория в вашу master ветку, чтобы синхронизировать ее с основным проектом:

git pull upstream master

7. Создайте новую ветку командой:

git switch -c fix-issue-<issue number>

или

git switch -c <your-username>-<problem-number>

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

Примечание: Рекомендую всегда создавать новую ветвь для каждого issue, который вы выполняете! Иначе pull request будут слишком большими и возможно возникнут конфликты слияния.

Задачи

Проект Эйлер содержит более 800 различных задач различной трудности. Вы можете выбрать любую задачу, которую вы хотите. Вы можете также выбрать и решить несколько задач. Только не забывайте создавать новую ветвь для каждой из них.

Сначала, выберите задачу, которую вы хотите решать и откройте ее директорию:

  project-euler
  ├── Problem1/
  │   └── README.md
  ├── Problem2/
  │   └── README.md
  ├── Problem3/
  │   └── README.md
  └── README.md

Перейдите в README файл выбранной задачи, чтобы получить информацию об ее сути.

Создайте директорию для вашего решения в формате:

<Your github nickname>-<your language>/

Например:

  project-euler
  ├── Problem1/
  │   ├── User1-cpp/
  │   ├── Username2-php/
  │   ├── IvanIvanov-java/
  │   │     ^
  │   │     └── Директория для вашего решения
  │   └── README.md
  ├── Problem2/
  │   ├── User1-golang/
  │   └── README.md
  └── README.md

После этого вы готовы решать задачу.

Добавьте файлы с исходным кодом в вашу директорию (наличие README приветствуется).

Примечание: Избегайте лишних файлов (бинарные файлы или метаданные IDE) и проверьте что ваша программа работает корректно.

Все корректные решения будут добавлены после ревью.

Примечание: вам не нужно спрашивать разрешения начать решать задачу, предложенную в issue, т.к. в этом проекте все issue открыты для новых контрибьютеров. Можно сразу же начинать работать с issue прямо сейчас! Однако помните, что на большинстве проектов вам необходимо спрашивать разрешение прежде чем начать работать с issue. Это необходимо чтобы несколько человек не начали работать над одним и тем же issue одновременно, и соответственно потратили свое время.

Отправка ваших изменений

После того как вы решили задачу, вы готовы отправить изменения.

1. Добавьте ваши изменения в отслеживание:

git add файлы-которые-вы-изменили

2. Сделайте коммит:

git commit -m "Add solution for Problem 1 in Python"

3. Отправить изменения в ваш "форкнутый" репозиторий:

git push origin fix-issue-<issue number>

или

git push origin <your-username>-<problem number>

После того как вы отправили ваши изменения на GitHub, вы готовы создать pull request.

Поздравляю, Вы сделали свой первый вклад в open source на GitHub!

Можете расслабиться и подождать пока не сделают ревью вашего кода. Если все хорошо, ваш pull request вольют в основную ветку. Если нет, вам будет предложено внести изменения в ваш код.

Помните, что нужно подождать ревью вашего pull request, не закрывайте его сами. Если вас просят сделать изменения, вы можете коммититить их в ту же самую ветвь, не нужно закрывать текущий pull request и открывать новый.

Контакты

Столкнувшись с затруднениями, не стесняйтесь открыть issue, написать в Discussions или мне на почту per-1986@list.ru.