java практика: Project Euler open source проект
java практика сайт
ссылка на github

PROJECT EULER OPEN SOURCE

Project Euler open source - это проект, не только помогающий изучить и попрактиковать конструкции языка Java, но и сделать свой первый pull request на GitHub.

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

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

Кнопка Fork

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

Кнопка Code

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

Кнопка Code

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

git clone https://github.com//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//project-euler.git (fetch)
origin  https://github.com//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! Помните, каждый раз сначала делать pull из upstream репозитория, чтобы держать содержимое Вашего локального репозитория в соответствии с главным проектом.

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

Задачи

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

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

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

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

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

Solution[номер задачи]-[Ваш github nickname]/

Например:

project-euler 
├── Problem1/
│   ├── Solution1-User1/
│   ├── Solution1-Username2/
│   ├── Solution1-IvanIvanov/
│   │     ^
│   │     └── директория для Вашего решения
│   └── README.md
├── Problem2/
│   ├── Solution2-User1/
│   └── README.md
└── README.md

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

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

Пожалуйста, организуйте репозиторий придерживаясь одного из следующих форматов:

Solution1-YourGithubName/
├── Main.java       // Ваш исходный код
└── README.md       // (Опционально) короткое описание или гайд по использованию 

Если код состоит из нескольких классов:

Solution1-YourGithubName/
├── src/           // Ваш исходный код
│   ├── Class1.java
│   ├── Class2.java
│   └── Main.java
└── README.md      

Если есть тесты:

Solution1-YourGithubName/
├── src/           
│   ├── main/           // Ваш исходный код
│   │   ├── Class1.java
│   │   ├── Class2.java
│   │   └── Main.java
│   └── test/           // (Опционально) тесты 
│       ├── Class1Test.java
│       ├── Class2Test.java
│       └── MainTest.java
└── README.md      

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

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

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

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

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

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

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

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

git commit -m "Fixed issue"

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

git push origin fix-issue

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

Перейдите на Ваш "форк" репозитория на GitHub.

Кнопка Pull Request
Поля title и description
Кнопка Create pull request

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

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

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

Контакты

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

Требования

Список контрибьюторов

Огромное спасибо всем, кто контрибьютил в этот проект!