Skip to content
This repository has been archived by the owner on Jan 13, 2018. It is now read-only.

Releases: bem-archive/bem-tools

0.7.1

18 Nov 17:09
Compare
Choose a tag to compare
  • Fixed exception in bem build

0.7.0

18 Nov 17:08
Compare
Choose a tag to compare
  • Level scanner no longer fails on symlinks

  • css tech correctly generates classes for modifiers without values (#425)

  • Warning is shown when level does not exists or does not contain .bem directory (#418)

  • Ability to specify multiple elems in elem properties in deps.js files (#401):

    ({
      shouldDeps: { block: 'bla', elem: ['e1', 'e2', 'e3'] }
    })

    is equivalent to:

    ({
      shouldDeps: [
          { block: 'bla', elem: 'e1' },
          { block: 'bla', elem: 'e2' },
          { block: 'bla', elem: 'e3' }
    })
  • Shortcut for specifying tech dependencies of the same block (#413):

    { block: 'b',  tech: 'js', mustDeps: { tech: 'bemhtml' }  }

    is equivalent to:

    { block: 'b',  tech: 'js', mustDeps: { block: 'b', tech: 'bemhtml' }  }
  • build command for bem bench is customizable via bem-bench-build
    script in project's package.json

  • GitLibraryNode specifies git dir explicitly with git commands (#355)

  • Base tech is selected according to child's API_VER. Error is thrown when
    base and child techs have different API_VER (#416)

  • It is possible to write tech module as a function (#363):

    module.exports = function(BEM) {
        return {
            //tech mixin
        };
    }
  • It is possible to write level config as a function (#364):

    module.exports = function(BEM) {
        return {
            //level mixin
        };
    }
  • baseLevelName property can be used in level config to specify simple or
    project level by name (#367)

  • scanner of simple level doesn't ignore dirs like name.tech

  • deps: possibility to declare dependence without explicitly including item (#459):

    {
        block: "some-block",
        mustDeps: [
          {block: "other-block", include: false}
        ]
    }

    In this case, other-block won't be included in bundle with some-block automatically. But, if
    bundle requires both some-block and other-block, other-block will always
    be included before some-block.

  • --no-colors option to disable colors in terminal

  • v1 tech warning shows link to migration instructions

  • q-fs and q-http libraries replaced with q-io

  • underscore library replaced with lodash (#94)

  • benchmarks can be built on multiple bundle levels

0.6.16

18 Nov 17:07
Compare
Choose a tag to compare
  • Update csso within borschik dependency to 1.3.8
  • deps.js: Fix levels cache validity check
  • Warn on v1 tech module usage, not creation
  • GitLibraryNode: add origin parameter to customize remote name
  • Update borschik dependency to 0.3.5
  • Version-independent solution for CP#fork (Node.js 0.6+)
  • Add tech name and path to V1 deprecation warning
  • Fix bem create level run without prototype (--level opt)
  • LibraryNode: create the leading directories before checkout
  • bemdecl.js: Traverse through all fields, not only mix and content

1.0.0-alpha4

02 Sep 14:09
Compare
Choose a tag to compare
1.0.0-alpha4 Pre-release
Pre-release
  • bem command usage statistics is collected now using insight module
  • tech/v2.js: getBuildPaths(decl, levels) signature extended to getBuildPaths(decl, levels, output, opts)
  • tech/v2.js: fixed bug which was causing to pass wrong suffix when calling getBuildResultChunk()
  • v2/deps.js: filter() method does use new behaviour compatible with previous one
  • Dropped external libraries support. Use of bower (bower-npm-install) is suggested instead
  • .bem/make.js config can use function style for now:
module.exports = function(registry) {
    // code within this function body is the same as `make.js` content before
    registry.decl(...);
}
  • Added tests for tech modules using bem-smoke package

  • Dropped node v0.6.x support

  • Added week suffixes map: special suffixes map that is used as a build suffixes map when declaration has dependance by tech

    Usual behavior for technology suffixes is considered to be strong-binding, i.e. when dependency item has no technology specified, any file that matches (item path + any build suffix for technology) is included in sources file list.

    Another kind of behavior is added, which is considered to be weak-binding — suffixes that are weak don't add files to source files list, unless technology matching the weak-suffix is explicitly specified in the dependency item.

  • Build cache is now per-technonlohy so techs that writes to the same file does not override each others cache.

0.6.15

13 Aug 10:09
Compare
Choose a tag to compare
  • API: getBuildResultChunk() should've been passed source suffix, not destination, and that was fixed. Check your tech modules that they do not broke.

0.6.14

13 Aug 09:34
Compare
Choose a tag to compare
  • bem: Fix bug in bem create level that prevented from using level prototype from module installed in node_modules
    folder on the project level
  • bem: Throw an error when unable to resolve tech by name specified in baseTechName property of tech module

0.6.13

09 Aug 15:43
Compare
Choose a tag to compare
  • tech/v2: transformBuildDecl() is reborn and used in buildByDecl()
  • level scanner: use proper suffix for folders representing block with mod and val
  • level scanner: don't ignore block/elem/elem.tech and block/mod/mod.tech kinds of folders
  • deps.js v2: invalidate when declaration modified date is later than deps.js

0.6.12

05 Aug 13:58
Compare
Choose a tag to compare
  • bem: Add level-proto tech that creates levels based on prototypes in .bem/levels/*.js on project level

    Example usage (.bem/level.js):

    exports.getTechs = function() {
        return {
            'docs':   'level-proto', // will create levels <name>.blocks/ with proto in .bem/levels/docs.js
            'blocks': 'level-proto'  // will create levels <name>.blocks/ with proto in .bem/levels/blocks.js
        };
    };
  • bem: Fix bug in bem create level that prevented from creating level without prototype

  • bem make: Fix bug in BemCreateNode that was causing error when using single tech on different names
    (e.g. level-proto)

  • bem make: require() in .bem/make.js configs behaves more correctly now (try to require any dependency
    of your project from your .bem/make.js)

  • bem make: level property in BlockNode now initialized on the first access; this helps to deal with levels being
    created during the bem make build process

  • API: Export logger and template from bem module

  • API: Add Node.create() static method to simplify creation of nodes, see example

    var opts = {
            // node options
        },
        node = registry
            .getNodeClass('BemCreateNode')
            .create(opts);

0.6.11

30 Jul 09:53
Compare
Choose a tag to compare
  • Fixed technology cache: two technologies with same target names don't overwrite each other's cache anymore
  • Stop calling bem create {block,mod,elem,val} from bem make process

1.0.0-alpha3

23 Jul 11:09
Compare
Choose a tag to compare
1.0.0-alpha3 Pre-release
Pre-release
  • Remove legacy techs support
  • Move bem bench support into separate package (see bem-bench)
  • Remove bem create block | elem | mod commands. You should use bem create command with options instead. See bem create --help for more info.
  • Remove qq dependency. If you were using qq in your tech modules like var Q = require('bem').require('qq') you should migrate to using q instead.
  • Remove q-fs and q-http dependency. If you were using q-fs in your tech modules like var Q = require('bem').require('q-fs') you should migrate to using q-io/fs instead.
  • Add warning on using tech API V1