------------------
- The ``yarn`` subcommand is now provided as an alternative to ``npm``.
- Also decreased the log verbosity during the bootstrap runtime stage,
so that for systems that don't have the required binaries available,
the default ``calmjs`` command won't show those pile of warnings for
that (increasing verbosity with ``-v`` will restore those warnings).
- Some confusing internal (but public) identifiers which are used in the
Toolchain and Spec system have been renamed to better reflect their
intended use and purpose. Deprecation code is applied to aid
transition, and these will be removed in 4.0.0.
- For ``Spec``:
- ``*_source_map`` -> ``*_sourcepath`` (except for the key that really
amplified the confusion which was ``generate_source_map``)
- ``*_targets`` -> ``*_targetpaths`` (to be consistent with paths on
the filesystem).
- On the ``Toolchain``, for the similar reasons as above:
- ``sourcemap_suffix`` -> ``sourcepath_suffix``
- ``target_suffix`` -> ``targetpath_suffix``
- Changed the order of binary resolution for Driver instances with
configured NODE_PATH and current working directory to align with how
Node.js inject them internally (in ``module.paths``, current working
directory has higher order of precedence over NODE_PATH), for the
method ``BaseDriver.find_node_modules_basedir``.
- Framework for predefined artifact generation for packages through the
``calmjs.artifacts`` registry.
- Also split off the directory resolution from the above method to
``BaseDriver.which_with_node_modules``.
- Deprecated the existing toolchain.transpiler function as a standard
callable. The new version must be an instance of ``BaseUnparser``
provided by the ``calmjs.parse`` package. The NullToolchain will
retain the usage of the legacy transpiler.
- Generation of the full transpile targetpaths will be normalized. Note
that targetpath is still toolchain specific.
- Removed most of the ``vlqsm`` module as the functionality is now
provided by ``calmjs.parse.vlq`` and ``calmjs.parse.sourcemap``. Only
the legacy ``SourceWriter`` class remain, which is deprecated.
- Provide generic first class support for loader plugins, such that
downstream packages should no longer need to explicitly declare
``extras_calmjs`` to specify the location of loaders for all the
different toolchains (which inevitably collide and cause conflicts).
Toolchains downstream will need to implement support for this.
- Artifact production support, including integration with setuptools.