Как добавить новый форк проекта в composer?

Как разработать и опубликовать форк проекта fastcgi-react на Github, чтобы его можно было установить через Composer?
  • 24 января 2024 г. 9:48
Ответы на вопрос 3
Для добавления нового форка проекта в Composer и его разработки/публикации необходимо выполнить несколько шагов:

1. **Форкнуть проект на GitHub:**
   - Найдите репозиторий проекта `fastcgi-react` на GitHub.
   - Нажмите кнопку "Fork" в верхнем правом углу страницы, чтобы создать свою копию репозитория в вашем аккаунте.

2. **Клонировать форк к себе на компьютер:**
   ```bash
   git clone https://github.com/your-username/fastcgi-react.git
   cd fastcgi-react
   ```

3. **Сделать изменения в коде:**
   - Внесите нужные изменения в коде.
   - Протестируйте изменения, убедитесь, что все работает как задумано.

4. **Коммит и пуш изменений в ваш форк на GitHub:**
   ```bash
   git add .
   git commit -m "Ваши замечательные изменения"
   git push origin master
   ```
   
5. **Опубликовать пакет на Packagist:**
   Для того чтобы использовать Composer для установки вашего форка, вам нужно опубликовать его на Packagist:
   - Зайдите на сайт [Packagist](https://packagist.org) и зарегистрируйтесь или войдите в уже существующий аккаунт.
   - Перейдите в раздел "Submit" и введите URL вашего форка на GitHub.
   - Последуйте инструкциям на сайте для публикации пакета.

6. **Добавление форка в проект через Composer:**
   В файле `composer.json` вашего проекта, в котором вы хотите использовать форк, добавьте ваш пакет в секцию `require`, указав путь к вашему форку и требуемую версию:

   ```json
   {
       "require": {
           "your-username/fastcgi-react": "dev-master"
       }
   }
   ```
   Если ваш форк не опубликован на Packagist, вы также можете добавить репозиторий напрямую в `composer.json`:

   ```json
   {
       "repositories": [
           {
               "type": "vcs",
               "url": "https://github.com/your-username/fastcgi-react"
           }
       ],
       "require": {
           "your-username/fastcgi-react": "dev-master"
       }
   }
   ```
   Вместо `dev-master`, вы можете указать другую ветку или тег, который вы использовали для своих изменений.

7. **Установка форка через Composer:**
   Теперь вы можете установить или обновить зависимости в своем проекте, включая новый форк:
   ```bash
   composer update
   ```
   или, если хотите установить только ваш форк:
   ```bash
   composer require your-username/fastcgi-react:dev-master
   ```

8. **Версионирование и релизы:**
   Для удобства использования в других проектах лучше всего выпускать версии с использованием [семантического версионирования](https://semver.org/). Создавайте теги в вашем форке для каждой значимой версии, чтобы пользователи могли выбирать нужные версии вашего пакета.

9. **Документация:**
   Не забудьте добавить информацию о том, как установить ваш форк и какие изменения были сделаны, в файл `README.md` вашего репозитория.

После выполнения данных шагов, у вас будет работающий форк проекта `fastcgi-react`, который другие пользователи могут установить через Composer.
Loading a package from a VCS repository
There are a few use cases for this. The most common one is maintaining your own fork of a third party library. If you are using a certain library for your project, and you decide to change something in the library, you will want your project to use the patched version. If the library is on GitHub (this is the case most of the time), you can fork it there and push your changes to your fork. After that you update the project's composer.json. All you have to do is add your fork as a repository and update the version constraint to point to your custom branch. In composer.json only, you should prefix your custom branch name with "dev-" (without making it part of the actual branch name). For version constraint naming conventions see Libraries for more information.

Example assuming you patched monolog to fix a bug in the bugfix branch:
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-bugfix"
    }
}
https://getcomposer.org/doc/05-repositories.md#loa...

как залить на composer
Если вы под этим понимаете Packagist, то инструкция находится прямо на главной странице :
Define Your Package
Put a file named composer.json at the root of your package's repository, containing this information:
{
    "name": "your-vendor-name/package-name",
    "description": "A short description of what your package does",
    "require": {
        "php": ">=8.2",
        "another-vendor/package": "1.*"
    }
}

This is the strictly minimal information you have to give.

For more details about package naming and the fields you can use to document your package better, see the about page.

Validate The File
Run composer validate to check that your file has no syntax errors.

Commit The File
Add the composer.json to your git or other VCS repository and commit it.

Publish It
Log in or register on this site, then hit the submit button in the menu.

Once you entered your public repository URL in there, your package will be automatically crawled periodically. You just have to make sure you keep the composer.json file up to date.
Не обязательно заливать на 
В composer.json можно использовать любые репозитории.

Похожие вопросы