Giter VIP home page Giter VIP logo

bem-pr's People

Contributors

arikon avatar belozer avatar dfilatov avatar diunko avatar kompolom avatar mishaberezin avatar tadatuta avatar veged avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bem-pr's Issues

Обновление chai

Последнее обновление было 3 года назад. Может стоит обновить chai? Т.к. доки (чая) опережают возможности в bem-спеках.

Add @file tag during JSDoc generation

With @file tag at the top of each processed file it would be much easier to generate suitable API documentation for blocks that split to several levels.

Сборка тестов для модификатора также включает тесты на блок/элемент

\cc @dfilatov

Из-за того, что технология bemhtml+browser.js+test.js использует bemjson в качестве декларации, декларация модификатора БЭМ-сущности (блока или элемента) всегда будет включать саму БЭМ-сущность поскольку в bemjson невозможно задекларировать только модификатор:

// default.bemjson.js
{ block : 'b1', mods : { type : 'yes' } } 

развернется в default.bemdecl.js

[
  { block : 'b1' },
  { block : 'b1', mod : { name : 'type', val : 'yes' } }
]

Цели для сборки всех примеров блока

Сейчас примеры и тесты можно собрать только точечно.
Нужны цели для сборки всех примеров/тестов блока и примеров/тестов всех блоков уровня *.sets.

Не собитается примеры с touch уровнем.

Ошибка возникает при геренации html из bemjson'a наложением bemhtml'я

Небольшое расследование на эту тему:
По коду ниже видно, что _apply(this.mode = 'js-params') вызывается для dektop'a из шаблона блока (block b-page), а для touch'ей из шаблона элемента (block b-page elem body)
Если для touch'ей переписать код на _apply(this.mode = 'js-params', this.elem='') ошибка изчезает.
Так же возможно ошибка из-за старой версии xjst прописаной в package.json тут
https://github.com/bem/bem-tools/blob/introspect/package.json

blocks-common/i-global/i-global.bemhtml
....block b-page, this._mode === 'js-params':

blocks-desktop/b-page/b-page.bemhtml
....block b-page {
........mix, !this.elem, !this.ctx._iGlobal: {
............jsParams = apply(this._mode = 'js-params');

blocks-touch/b-page/b-page.bemhtml
....block b-page {
........elem body, mix, !this.ctx._iGlobal: {
............jsParams = apply(this._mode = 'js-params');

Цель <bemitem>.examples инвалидируется при каждом обновлении ресурса примера

Сейчас конечный граф целей сборки ресурса выглядит, примерно, так:

all
  build
    ...
    desktop.sets/block.examples/10simple/10simple.bemjson.js
      desktop.blocks/block/block.examples/10simple/10simple.bemjson.js
      desktop.sets/block.examples/10simple
      ...
        desktop.sets/block.examples       ← GeneratedLevelNode (*)

    desktop.sets/block.examples/10simple/10simple.bemdecl.js
      desktop.sets/block.examples/10simple/10simple.bemjson.js
        ...
    desktop.sets/block.examples/10simple/10simple.deps.js
      desktop.sets/block.examples/10simple/10simple.bemdecls.js
        desktop.sets/block.examples/10simple/10simple.bemjson.js
          ...

При сборке <deps> → <bemdecl> → <bemjson>, цель desktop.sets/blocks.examples (*) инвалидируется при каждом изменении ресурсов примера, в том числе, при создании промежуточных файлов (<bemdecl>).

Из-за этого сборка постоянного пытается «создать» blocks.examples.

13:47:43.839 - info: [t] Build time for "desktop.sets/button.examples" [11]: 24ms
13:47:43.844 - info: [t] isValid() time for "desktop.sets/button.examples" [12]: 1ms
13:47:43.845 - info: [*] make 'desktop.sets/button.examples' [12]
13:47:43.848 - info: [t] isValid() time for "desktop.sets/button.examples/30link/_bem/30link_bem.bemjson.js" [11]: 5ms
Skip "button.examples": already exists "[...]/desktop.sets/button.examples/.bem/level.js"
Add --force to force creation.

Race condition while running tests with bem server

How to reproduce.

With bem-core:

  1. clone the repo
  2. npm i && bower-npm-install
  3. bem server

Open http://localhost:8080/desktop.specs/i-bem/spec-js+browser-js+bemhtml/_spec-js+browser-js+bemhtml.html in browser. See the blank page instead of mocha's test's results.

Use "tests" levels as functional testing examples

We should split our current examples into two parts: so called "examples for documentation" and "examples for functional testing".

First part (current <block>.examples) will be used to show block's functionality which is interesting for users. Second part would consists of development specific cases of usage of the block.

Не собираются тесты для некоторых наборов

Как воспроизвести:

  • git clone [email protected]:bem/bem-controls.git
  • cd bem-controls
  • git co -b issues/113@v2
  • npm install
  • bem make vendor
  • bem make desktop.sets/input__clear.tests/default // работает
  • bem make touch-pad.sets/input__clear.tests/default // не работает

При этом есть оба файла:
desktop.blocks/input/__clear/input__clear.test.js
touch.blocks/input/__clear/input__clear.test.js

Точечные цели для сборки технологий сета

Из bem/bem-core#150 \cc @dfilatov @veged

Есть желание, мочь точечно собирать только некоторые куски сета: примеры, тесты, (документацию). И, подозреваю, что скорее, даже «хочется» собирать отдельные куски всех сетов (› bem make tests).

Но я не очень понимаю, как это «правильнее» реализовать.

Есть два варианта

  1. Добавить точечные «виртуальные» цели, а-ля desktop.sets/tests

Вариант хреновый: виртуальные цели в БЭМ-мире сложно программировать, потому что непонятно, какие именно тесты имеются ввиду: у нас есть технологии tests, test.js, test.js+browser.js+bemhtml (а будут еще) и они все задекларированны на уровнях, но имееют пересекающиеся суффиксы.

  1. Забить

...и тупо возвращать разный набор собираемых для сета технологий, в зависимости от внешних факторов, например, переменной окружения.

› SETS_TECHS=tests.js bem make sets

соберутся все сеты, но только в технологии tests.js

Что скажете? Или встречу собирать? ;)

Установка npm-зависимостей падает на фантоме

Проблема решается указанием жесткой зависимости "phantomjs": "1.9.0-6"

Текущий лог при установке:

npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
npm http 200 https://registry.npmjs.org/proto-list/-/proto-list-1.2.2.tgz

> [email protected] install /Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs
> node install.js

Downloading http://phantomjs.googlecode.com/files/phantomjs-1.9.1-macosx.zip
Saving to /var/folders/54/bmytzkfn4gv2pk260wgb838m0000gp/T/phantomjs/phantomjs-1.9.1-macosx.zip
Receiving...
{
Received 783K...
Received 1566K...
Received 2348K...
Received 3132K...
Received 3913K...
Received 4696K...
Received 5479K...
Received 6261K...
Received 7044K...
Received 7849K...
Received 8631K...
Received 9416K...
Received 10198K...
Received 10978K total.
Extracting zip contents
Renaming extracted folder /var/folders/54/bmytzkfn4gv2pk260wgb838m0000gp/T/phantomjs/phantomjs-1.9.0-macosx -> /Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/lib/phantom
Phantom installation failed Error: ENOENT, no such file or directory '/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/lib/phantom/bin/phantomjs'
   at Object.fs.statSync (fs.js:684:18)
   at fixFilePermissions (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/install.js:220:19)
   at Promise._successFn (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/install.js:72:12)
   at Promise._withInput (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/kew/kew.js:204:25)
   at Promise.resolve (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/kew/kew.js:92:25)
   at resolver (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/kew/kew.js:264:17)
   at cb (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/ncp/lib/ncp.js:217:38)
   at /Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/ncp/lib/ncp.js:142:14
   at Object.oncomplete (fs.js:107:15)
npm ERR! weird error 1
npm ERR! not ok code 0

   at ChildProcess.<anonymous> (/Users/tadatuta/Sites/bem-core/node_modules/bem/lib/util.js:783:18)
   at ChildProcess.EventEmitter.emit (events.js:98:17)
   at Process.ChildProcess._handle.onexit (child_process.js:789:12)
From previous event:
   at /Users/tadatuta/Sites/bem-core/node_modules/bem/node_modules/q/q.js:1223:17
   at Array.reduce (native)
   at /Users/tadatuta/Sites/bem-core/node_modules/bem/node_modules/q/q.js:1216:9
   at /Users/tadatuta/Sites/bem-core/node_modules/bem/node_modules/q/q.js:854:23

AllTestsLevelNode создается всегда, независимо от того, собираем ли мы тесты на проекте

Узел <...>/all.tests/default* должен создавать только если в наборе указана сборка тестов.

Сейчас, если проект хочет собирать только примеры, ему все равно нужно декларировать у себя технологии test-tmp и пр., иначе сборка будет «валиться» с '"default.tech" is already exists'

\cc @mishaberezin

Ошибка при запуске тестов: "error: Error: Command failed:"

При попытке выполнить тесты локально на Mac OS X:

$ node -v
v0.8.14
$ npm -v
1.1.65
$ bem -v
0.5.33
$ bem make desktop.sets/input.tests/01-test
...
16:45:04.493 - info: [i] Page was sent to Phantom (/Users/rudeshko/dev/serp/contrib/islands-search/desktop.sets/input.tests/01-test/01-test.phantomjs)
------------------------------
Tests results for: /Users/rudeshko/dev/serp/contrib/islands-search/desktop.sets/input.tests/01-test
error: Error: Command failed:
------------------------------
16:45:04.728 - info: [t] Build time for "desktop.sets/input.tests/01-test/01-test.phantomjs" [4]: 472ms
*************************************************
WARNING! There are 1 unfinished build processes!
This application exit is not planned. Please check that all nodes in arch resolve or reject promises they return.
Dump of plans of unfinished build processes follow.

Plan(4) for targets: desktop.sets/input.tests/01-test
Plan[4]:
 __plan_root__
   desktop.sets/input.tests/01-test

Jobs: desktop.sets/input.tests/01-test
Active jobs:
*************************************************

тесты: Не правильно формируется testContent для шаблона default теста

Сейчас testContent (https://github.com/narqo/bem-pr/blob/v0.2/bem/nodes/tests.js#L52) формируется как фрагмент в формате deps, т.е. для модификатора будет { block: 'b', elem: 'e', mod: 'm', val: 'v' }. А используется это внутри bemjson -- поэтому должно быть фрагментом bemjson: { block: 'b', elem: 'e', mods: { m: 'v' } }.

test.js+browser.js+bemhtml: Правильно инвалидировать результат сборки

Сейчас технология валидируется только по файлам test.js и только по основной декларации -- в итоге не работает пересборка при изменении js и/или bemhtml файлов.

Судя по https://github.com/bem/bem-tools/blob/master/lib/nodes/build.js#L356 можно подменить transformBuildDecl и добавить в getSuffixes суффиксы всех трёх технологий. Это приведёт к несколько избыточной инвалидации, то это лучше чем недоинвалидация.

Переименовать суффикс технологии sets в ".set"

\cc @veged @arikon @mishaberezin @dfilatov

Мы как-то обсуждали, что суффикс .sets неправилey, потому что desktop.sets, по-факту, это один набор "desktop".

Я хочу исправить это в 0.1.0 над которой сейчас работаю. Есть принципиальные возражения (кроме того, что это обратно не совместимые изменения, которые сломают все у всех)?

Итоговая структура будет:

PRJ/
  desktop.blocks/
  desktop.set/
    button.examples/
      10-simple/
    all.tests/
      default/
    button.tests/
      10-simple/
  touch-pad.set/
    [...]

Some of promise objects are not resolved properly

@mishaberezin

Где-то между 0.0.5 и 0.0.9, что-то сломалось и теперь «холодная» сборка примеров в bem-gen-doc падает.

Очевидно, где-то в bem/nodes/sets.js не резолвится вовремя какой-то промис. Такую же штуку я ловил, когда пытался сделать пример для проекта.

Воспроизвести в bem-gen-doc:

› bem make -r example site

Лог ошибки:

*************************************************
WARNING! There are 1 unfinished build processes!
This application exit is not planned. Please check that all nodes in arch resolve or reject promises they return.
Dump of plans of unfinished build processes follow.

Plan(1) for targets: site
Plan[1]:
 __plan_root__
   site
     release/examples/examples.sets/b-form-button__click.examples/link
       release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml
         release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.meta.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/_link.bemhtml.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.meta.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
               release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/link.css
         release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.css.meta.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/_link.css
         release/examples/examples.sets/b-form-button__click.examples/link/link.css
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.css.meta.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
               release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/link.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.js.meta.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/_link.js
         release/examples/examples.sets/b-form-button__click.examples/link/link.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.js.meta.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
               release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
       release/examples/examples.sets/b-form-button__click.examples/link/link.html
         release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.js
           release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml
             release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
               release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
             release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.meta.js
               release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
                 release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
     release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.meta.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/_disabled.bemhtml.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.meta.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
               release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css.meta.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/_disabled.css
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css.meta.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
               release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js.meta.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/_disabled.js
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js.meta.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
               release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
       release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.html
         release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.js
           release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
               release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
             release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.meta.js
               release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
                 release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
     release/examples/examples.sets/b-form-button.examples/submit
       release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml
         release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.meta.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/_submit.bemhtml.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.meta.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
               release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/submit.css
         release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.css.meta.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/_submit.css
         release/examples/examples.sets/b-form-button.examples/submit/submit.css
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.css.meta.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
               release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/submit.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.js.meta.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/_submit.js
         release/examples/examples.sets/b-form-button.examples/submit/submit.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.js.meta.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
               release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
       release/examples/examples.sets/b-form-button.examples/submit/submit.html
         release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.js
           release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml
             release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
               release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
             release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.meta.js
               release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
                 release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js

Jobs:
Active jobs: release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js, release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js, release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
*************************************************

TravisCI fails to run tests with "Failed to start mocha: Init timeout"

It seems that tests fail because of lots of child process with mocha-phantom which we run for every spec.

18:59:38.177 - error: Tests failed killed=false, code=255, signal=null
Error: Command failed:
    at ChildProcess.exithandler (child_process.js:637:15)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)

spec.js+browser.js+bemhtml.js: Fix depsByTech for js for specs

Index: ../../prjs/bem-controls/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- ../../prjs/bem-controls/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js (revision )
+++ ../../prjs/bem-controls/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js (revision )
@@ -20,11 +20,22 @@
         return ctxOpts.declaration
             .then(function(decl) {
                 var specJsResults = _this.getTechBuildResults('spec.js', decl, context, output, opts),
-                    browserJsResults = _this.getTechBuildResults('browser.js', decl, context, output, opts),
                     bemhtmlDecl = new DEPS.Deps(),
                     depsByTechs = decl.depsByTechs || {},
                     depsByTechsJs = depsByTechs.js || {},
-                    depsByTechsSpecJs = depsByTechs['spec.js'] || {};
+                    depsByTechsSpecJs = depsByTechs['spec.js'] || {},
+                    browserJsDecl = (new DEPS.Deps())
+                        .parse(decl.deps)
+                        .parse(depsByTechsSpecJs.js.map(function(i) {
+                            delete i.tech;
+                            return i;
+                        })),
+                    browserJsResults = _this.getTechBuildResults(
+                        'browser.js',
+                        { deps : (browserJsDecl.serialize()[''] || {})[''] || [] },
+                        context,
+                        output,
+                        opts);

                 bemhtmlDecl.parse(depsByTechsJs.bemhtml || []);
                 bemhtmlDecl.parse(depsByTechsSpecJs.bemhtml || []);

TypeError: 'undefined' is not an object (evaluating 'domNode.onclick')

With recent changes in v0.3 branch, there is an error during i-bem__dom (bem-core) testing process:

Tests results for: /Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default
stdout:

  i-bem__dom
    getMod
      ✓ should return properly extracted mod from html
    getMods
      ✓ should return properly extracted block mods from html
      ✓ should return properly extracted elem mods from html
    setMod
      ✓ should properly set CSS classes
    elemify
      1) "before each" hook

  ✖ 1 of 17 tests failed:

  1) i-bem__dom elemify "before each" hook:
     TypeError: 'undefined' is not an object (evaluating 'domNode.onclick')
      at extractParams (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:16137)
      at getParams (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:16127)
      at initBlock (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:16056)
      at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:17434
      at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:17932
      at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:5936
      at next (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:6200)
      at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:6204
      at timeslice (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:7176)

Сборка сайта с документацией

PRJ/
  .bem/level.js => simple
  <имя сета>.site/
    <имя сета>.site.bemjson.js
    <имя сета>.site.css
    <имя сета>.site.js
    <имя сета>.site.html
    block1/
      block1.html (использует <имя сета>.site.{js,css})
      block1.jsdoc.html (← использут <имя сета>.jsdoc/block1.jsdoc.json в качестве источника данных)

Ошибка при попытке собрать пример

Чекаучу bem-core@v1
Запускаю
bem make desktop.sets/events.tests/default

Получаю:

...
17:02:41.805 - info: [*] make 'desktop.sets/events.tests' [4]
Skip "events.tests": already exists "/Users/dfilatov/prjs/bem-core/desktop.sets/events.tests"
Add --force to force creation.
...

В итоге, тест первый раз все-таки собирается, а при повторных попытках результирующий файл не пересобирается.

Собирать документацию БЭМ-сущности

У каждой БЭМ-сущности может быть своя часть документаци, которую нужно собирать в наборе, на равне примерам.

Например

blocks/blah/
    __lem/
        blah__lem.md
    blah.md

В рельтирующем наборе, документацию блока blah должна «собраться» в один .md-файл.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.