Проблема: разработка интерфейса ведется независимыми командами, котырые зачастую работают над схожими задачами.
Только в Почте сущетсвует 4 группы, которые выполняют задачи нескольких продуктовых менеджеров.
vs
toolkit@0.15.2
//package.json "jam": { "dependencies": { } }
//package.json "jam": { "dependencies": { "toolkit": "0.14.0", "callstackjs": "0.4.2", "features": "0.1.0" } }
ll data/packages
...
5 18:27 callstackjs
9 11:20 toolkit -> ../../../packages/toolkit/
5 18:27 features
...
"dependencies": {
"toolkit": "git+ssh://git@gitmrg.ru:toolkit.git#mail-367"
}
Мерж-реквеств основную ветку пакета
МАЖОРНАЯ. МИНОРНАЯ. ПАТЧ
(CouchDB)
~/packages/toolkit $ jam publish
На самом деле нет
~/packages/toolkit $ git commit -am '0.14.17'
~/packages/toolkit $ git tag 0.14.17
Karma + Jasmine
Bamboo
Пакеты позволили сделать общими как большие библиотеки, так и некоторые частные решения
Независимая разработка и использование в разных проектах обязывает к строгому разграничеию зон ответственности
У каждого пакета должен быть свой владелец, на котором лежит ответственность за развитие своего участка