Мы рассматриваем возможность использования Artifactory в качестве прокси-сервера для pypi.org, чтобы мы могли вносить пакеты в белый список для наших разработчиков и предотвращать такие вещи, как опечатки.
Я был приятно удивлен, когда первоначальная настройка кэша репозитория (как описано в https://jfrog.com/help/r/jfrog-artifact ... positories) была выполнена примерно за две минуты. Однако включение шаблонов, похоже, работает не так, как мы думали - по крайней мере, для пакетов Python.
Единственной «документацией» для шаблонов является всплывающая подсказка: Список шаблонов артефактов, которые следует включать при оценке запросов артефактов в форме x/y/**/z/*. При его использовании обслуживаются только артефакты, соответствующие одному из шаблонов включения. По умолчанию включены все артефакты (
). Кажется, это синтаксис Ant, но даже информации об этом в Интернете мало.
Пустые шаблоны включения и исключения работают должным образом, все пакеты можно установить через кеш.
Добавление **/numpy* к шаблонам включения работает так, как ожидалось. Можно установить только numpy; другие пакеты, такие как pandas, не могут быть установлены.
Однако внесение в белый список **/numpy* также позволяет использовать пакеты с похожими именами, такие как numpyx, numpyp и т. д. Это не совсем идея внесения в белый список.
Мы не смогли найти выражения, которые позволили бы точно составить белый список (даже при запуске pip install --verbose numpy, чтобы просмотреть все URL-адреса, которые он пытается получить).
Добавление любого или всех следующих шаблонов не позволит установить numpy.
не позволяет установить Cython, а **/cython* позволяет. Похоже, работают только строчные буквы (хорошо, возможно, это потому, что pip install показывает «красивое» имя, но URL-адрес написан строчными буквами)
не позволяет устанавливать метаданные pyproject, но **/pyproject* позволяет. Похоже, что дефисы в именах пакетов тоже нарушают шаблоны.
[*]Мы надеялись закрепить версию, но не похоже, что это будет возможно. Кроме того, для списков шаблонов включения/исключения нет функции экспорта/импорта, и поддерживать их через веб-интерфейс, вероятно, скоро станет сложно.
У меня сложилось впечатление, что Artifactory — это решение корпоративного уровня для подобных сценариев, но оно выглядит неэффективным, чтобы быть полезным.
Я что-то упускаю?
Есть ли другие шаблоны?
Есть ли плагины, которые работают лучше?
Нужно ли нам перейти на совершенно другое решение?
Спасибо.
Мы рассматриваем возможность использования Artifactory в качестве прокси-сервера для pypi.org, чтобы мы могли вносить пакеты в белый список для наших разработчиков и предотвращать такие вещи, как опечатки. Я был приятно удивлен, когда первоначальная настройка кэша репозитория (как описано в https://jfrog.com/help/r/jfrog-artifactory-documentation/remote-repositories) была выполнена примерно за две минуты. Однако включение шаблонов, похоже, работает не так, как мы думали - по крайней мере, для пакетов Python. [list] [*]Единственной «документацией» для шаблонов является всплывающая подсказка: Список шаблонов артефактов, которые следует включать при оценке запросов артефактов в форме x/y/**/z/*. При его использовании обслуживаются только артефакты, соответствующие одному из шаблонов включения. По умолчанию включены все артефакты ([code]**/*[/code]). Кажется, это синтаксис Ant, но даже информации об этом в Интернете мало.
[*]Пустые шаблоны включения и исключения работают должным образом, все пакеты можно установить через кеш.
[*]Добавление **/numpy* к шаблонам включения работает так, как ожидалось. Можно установить только numpy; другие пакеты, такие как pandas, не могут быть установлены.
[*]Однако внесение в белый список **/numpy* также позволяет использовать пакеты с похожими именами, такие как numpyx, numpyp и т. д. Это не совсем идея внесения в белый список.
[*]Мы не смогли найти выражения, которые позволили бы точно составить белый список (даже при запуске pip install --verbose numpy, чтобы просмотреть все URL-адреса, которые он пытается получить).
[*]Добавление любого или всех следующих шаблонов [b]не[/b] позволит установить numpy.
[*]Есть и другие странные симптомы: [list] [code]**/Cython*[/code] не позволяет установить Cython, а **/cython* позволяет. Похоже, работают только строчные буквы (хорошо, возможно, это потому, что pip install показывает «красивое» имя, но URL-адрес написан строчными буквами) [*][code]**/pyproject-metadata*[/code] не позволяет устанавливать метаданные pyproject, но **/pyproject* позволяет. Похоже, что дефисы в именах пакетов тоже нарушают шаблоны. [/list]
[*]Мы надеялись закрепить версию, но не похоже, что это будет возможно. Кроме того, для списков шаблонов включения/исключения нет функции экспорта/импорта, и поддерживать их через веб-интерфейс, вероятно, скоро станет сложно.
У меня сложилось впечатление, что Artifactory — это решение корпоративного уровня для подобных сценариев, но оно выглядит неэффективным, чтобы быть полезным. Я что-то упускаю? Есть ли другие шаблоны? Есть ли плагины, которые работают лучше? Нужно ли нам перейти на совершенно другое решение? Спасибо.