ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] именование пакетов
@ 2020-02-13 20:34 Скрылевъ Малъ
  2020-02-14  0:00 ` Vitaly Lipatov
  2020-02-18 12:42 ` Dmitry V. Levin
  0 siblings, 2 replies; 6+ messages in thread
From: Скрылевъ Малъ @ 2020-02-13 20:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Приветствую всех,

Тут уже какой раз встаёт вопрос о именовании пакетов, на что я решил написать коротное разыскание. И оно выразилось в следующей таблице.

Номера и толкование столбцов и саму таблицу я привожу ниже:

1. имя хранилища пакетов
2. количество пакеток на сегодня
3. употребляемый язык программирования для написания библиотек для хранилища
4. наименование системы разработки, движка, или облака для этого хранилища
5. предлагаемый префикс

1                  2                                 3             4          5

npmjs         1,302,589            js             node/pure   npmjs-
atom             12,904               js             atom        atom-
bower            69,684              js             pure        bower-
atmospherejs     13,410           js             meteor      atmospherejs-
crates           37,102                rust           cargo       crate-
carthage          3,945               swift/c/objc   cocoa       carthage-
cocoapods        68,857           swift/c/objc   cocoa       cpod-
swiftpm           4,207                swift          swiftpm     swiftpm-
clojars          24,295                clojure        clojars     clojar-
cran             16,880                 r              r           cran-
conda             1,935               python/r       anaconda    conda-
pypi            237,491               python         pypi        pypi-
metacpan         37,628           perl           metacpan    metacpan-
cpan            185,296              perl           cpan        cpan-
dub               1,920                d              dub         dub-
elm               1,505                  elm            elm         elm-
go            1,818,640                go             go          go-
hackage          14,585             haskell        hackage     hackage-
haxe              1,436                  haxe           haxelib     haxe-
hex               9,578                 erlang/elixir  hex         hex-
julia             3,048                  julia          julia       julia-
maven           185,034          pom            java        maven-
nuget           201,136           c#/vb/ps       .net/mono   nuget-
packagist       317,896           php            packagist   packagist-
pub              10,657              dart           flutter     pub-
shards               33              crystal        shards      shard-
gems            162,413           ruby           rubygems    gem-
puppetforge       6,396         ruby           puppet      puppet-
ansiblegalaxy    23,850         ruby           ansible     ansible-



Заметки к этой таблице таковы, как из неё видно, во-первых для некоторых языков программирования используются несколько разных хранилищ, так для ruby есть три разных хранилища основное rubygems, и специфические puppet и ansible, для python это pypi и conda, для r это cran и тот же conda, для perl это cpan и metacpan, для swift это родной swiftpm и дополнительные carthage, cocoapods, ну и чемпион js, у которого налюдается настоящий бардак: например для системы node как правилно используется хранилище npmjs, но пакеты его так устроены, что могут быть написаны на чистом js, и ноды и не требовать, это явно прописывается в требованиях движка, пакеты хранилища atom переиспользуют npmjs, но оно длявляется для него второстепенным и к ним он добавляет свои зависимости, хранилище bower вообше не использует какой либо конкретный движок, и часто его паеты написаны на чистом js, а ещё это движок meteor со своим atmospherejs. 

Во-вторых для написания пакетов для некоторых хранилищ используются несколько языков программирования, например: для carthage и cocoapods это три языка: swift, c и objc, для conda это python и r, для nuget это все мелкомягкие языки (те что в mono) , а для hex это elixir и erlang. 

Для стороннего разработчика же как пользователя нажего репозитория важно понимать именно к какому хранилищу пакет относится, а не на каком языке он написан, это второстепенно, если скажем я программирую на elixir-е, то вполне под именованием пакета как hex- ожидаю встретить по зависимостям пакет на erlang, потому что так принято в том сообществе.

Моё предложением такое ориентироваться по крайней мере в именованиях новых пакетов именно на имя хранилища, предлагаемые префиксы для которых я поместил в соответствующем столбце таблицы.
Мне всыказывались мнения, что было бы хоро понимать также несведущим в хранилищах к какому языку относится пакет, это моно решить указываем его явно в каком либо свободном формате в автоматическом provide.
Имена пакетов со старых подходом  в принципе можно и не  особо менять.



-- 

Малъ Скрылевъ
about.me/majioa

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-02-18 13:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-13 20:34 [devel] именование пакетов Скрылевъ Малъ
2020-02-14  0:00 ` Vitaly Lipatov
2020-02-17 14:19   ` Vladimir D. Seleznev
2020-02-17 17:55     ` Ivan Zakharyaschev
2020-02-18 12:42 ` Dmitry V. Levin
2020-02-18 13:32   ` Anton Farygin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git