Skip to content

Commit 13a9c7c

Browse files
committed
Добавлен раздел с факапами при публикации пакетов
1 parent c497f7b commit 13a9c7c

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

docs/recipes/publish-package.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
Центральный репозиторий пакетов для OCaml называется [opam-repository](https://github.com/ocaml/opam-repository) и является GitHub-репозиторием, содержащий файлы манифестов.
44

5+
## Публикация
6+
57
Чтобы опубликовать ваш проект в opam-репозитории и сделать его общедоступным вам потребуется:
68

79
1. Во-первых манифест проекта, файл [`<название-проекта>.opam`](https://opam.ocaml.org/doc/Packaging.html#Creating-a-package-definition-file). Самый простой и современный способ его получить &mdash; использовать [Dune](../tools/dune.md);
@@ -73,4 +75,33 @@ $ opam publish
7375
### Принятие
7476
7577
После того как вы исправите все свои косяки, ваш PR сольют с репозиторием и вы сможете установить
76-
пакет обычным `opam install`.
78+
пакет обычным `opam install`.
79+
80+
## Факапы
81+
82+
:::details revdeps
83+
84+
Ошибка при сборки обратных зависимостей.
85+
86+
> [!NOTE] Пример
87+
> ![](https://i.ibb.co/yBm59wy/image.png)
88+
89+
> [!INFO] Причина
90+
> Скорее всего вы сломали API библиотеки, а предыдущие версия в зависимостях имела открытый ограничитель.
91+
> Например, вы добавляете версию `0.3` вашей библиотеки, где существенно изменили API, а библиотека версии `0.2` имеет зависимость `(lib (>= 0.2))` (открытый ограничитель). В результате чего и падает сборка, так как пытается собрать старый пакет с новой версией библиотеки.
92+
93+
> [!IMPORTANT] Решение
94+
> Измените ограничитель прошлых версией библиотек. [Пример](https://github.com/ocaml/opam-repository/pull/26624/files). Для этого придётся ручками править файлы в репозитории, либо воспользоваться `opam admin add-constraint`.
95+
96+
:::
97+
98+
:::details conf-pkg-config.3 failed to build
99+
100+
> [!NOTE] Пример
101+
> ![](https://i.ibb.co/9cRQNS6/image.png)
102+
103+
> [!IMPORTANT] Решение
104+
> Ждите вмешательство ментейнера, это не ваша ошибка.
105+
106+
:::
107+

0 commit comments

Comments
 (0)