Releases: teambit/bit
v14.0.0 - Discovery
Summary
Bit’s v14 is released side-by-side with the release of the v2 for bitsrc.io, Bit’s component community hub. New features for bitsrc.io v2 are announced in Bit’s Blog.
With over 65 new features, changes and bug fixes, v14 is Bit’s largest and richest release to date. V14 is focused on increased stability, agility and performance. It is is fully backwards compatible, and provides a faster and smoother workflow with improved compatibility throughout the ecosystem.
Here are some of v14's highlights:
- Improved performance for tracking, versioning and exporting components by up to 700%.
- Dozens of bug fixes (~70% of open issues).
- New commands
watch
andeject
. - Dynamic namespaces support.
- Improved VueJS support.
- Improved CSS support.
- Auto generated documentation for React.
New
- New
bit watch
command for building components upon file modifications. - New
bit eject
for removing local components and installing them as packages by an NPM client - Support dynamic namespaces (replaced the namespace/name format with a dynamic name that can have multiple slashes to indicate a hierarchical namespace).
- Support components with binary files (or non-supported extensions) as the only files.
- Support ids with wildcards (e.g.
bit tag "utils/*"
) for the following commands:tag
,untag
,remove
,untrack
,checkout
,merge
,diff
andexport
. - Support mix syntax of typescript and javascript inside .ts file
- Added react docs parsing to extract the description of the properties correctly.
- Support flow types in react doc generation.
- Support Vue files with typescript.
- Support configuring Git executable path.
- Support the new jsx syntax changes by Babel.
- Support print multiple external (build / test) errors.
- Support adding the project
package.json
file to a component. - Support
import ~
from a local (authored) file to an imported sass component. - Add programmatic API for add multiple components.
- Set the only dist file as main file in package.json (in case there is only one).
- Allow removing a component when it is invalid.
Changes
- Improved performance for tracking, versioning and exporting components by up to 700%.
- CSS parser replaced for better import syntax support.
- Improve auto-tag mechanism to tag not only the dependents but also the dependents of the dependents and so on.
- Changed
--include-unmodified
to--all
. - Replace caporal package with commander for security reasons.
- Better error when a component was tagged without its dependencies.
- Make bit version command faster and support both
bit -v
andbit -V
to get bit version. - Update tty-table, flow-coverage-report and mocha-appveyor-reporter for security reasons.
- Improve exception handling for old clients connecting to a newer server.
- Shorten the generated component ID to the minimum possible.
- Return status code 1 when bit test has failing tests.
- Suppress an exception of directory-is-empty when adding multiple components and some of them are empty, show a warning instead.
- Improve "missing a main file" error when adding multiple components to print the problematic components.
- Improve performance by caching objects after loading them.
- Fix ci-update command with component version number.
- Fix
bit status
to not throw an exception for invalid components. - Change
--conf
onbit import
to be a path to the config dir. - Replace the deprecated typescript-eslint-parser with @typescript-eslint/typescript-estree
Bug fixes
- Fix link files generated to a package when it should point to an internal file of the package.
- Fix parsing React docs to show the
@example
tag. - Fix running
bit link
from an inner directory for author. - Fix ampersand and minus signs causing parse error in css files.
- Fix
bit add
to add the correct letter case even when--main
or--test
flags entered with incorrect case. - Fix errors when component files require each other using module path.
- Fix dev-dependency that requires prod-dependency to include the dependency in the flattenedDevDependencies array.
- Do not delete isolated environment when running ci-update with keep flag and it throws exception.
- Fix import of components with circular dependencies.
- Fix link content generation for authored components on bit install.
- Fix bug with bit show when the remote component has config file.
- Fix context for testers during ci-update.
- Fix missing context in getDynamicPackageDependencies.
- Fix bug with bit show when scope path provided.
- Fix errors "JavaScript heap out of memory" and "Error: EMFILE: too many open files" when exporting a huge number of components.
- Fix error "link-generation: failed finding .. in the dependencies array" when a dependency has a devDependency installed as a component.
- Improve the stability of
bit export --eject
and provide some kind of rollback in case of failure. - Fix bit-remove to delete authored component files when removing an authored component from an inner directory.
v13.0.4
New
- send component origin repo in headers
Changes
- improve
bit test
to run tests not only on new and modified components but also on auto-tag pending components
Bug fixes
- fix
bit import
of a component with authored dependencies - generate npm links for Vue packages correctly without adding .vue extension to the package
- fix
bit add
to not throw an error for imported components when mainFile is a relative path to consumer - fix error "Cannot read property 'missing' of undefined" when a dependency of dependency has parsing errors (bit-javascript)
v13.0.3
Bug fixes
- fix link files generation to support the plugin "add-module-export" of babel compiler
- fix error "Cannot read property push of undefined" when a dependent has parsing error (bit-javascript)
- avoid parsing unsupported dependencies files (bit-javascript)
v13.0.2
New
- improve the tree shaking mechanism to work with unlimited number of intermediate files
- present parsing errors by
bit status
and prevent tagging it until fixed - show the newly tagged version for auto-tagged components
Changes
- rename
--ignore-missing-dependencies
flag ofbit tag
to--ignore-unresolved-dependencies
- avoid trying tree shaking on CommonJS code
- prevent dependency-resolver from parsing json files as they do not contain any dependency
Bug fixes
- fix
bit status
to show a component as deleted when track-dir was deleted for authored - fix parsing error when a Vue file has a dependency prefix with a Tilde inside a style section
- fix detection of .scss files when required with no extension
- don't break
bit status
when mainFile was deleted, instead, reflect it to the user with a suggestion - fix detection of "export * from" syntax of ES6
v13.0.1
New
- support
bit checkout latest
for checkout to the latest version - add
--reset
flag tobit checkout
command for removing local modifications - add
--all
flag tobit checkout
command for executing the checkout on all components - add new flag
--skip-tests
to bit tag command - add
--no-cache
flag tobit build
command - add
--include-unmodified
flag tobit test
command - add a troubleshooting-isolating link to bit status
Bug fixes
- fix .tsx parsing issue when the tsx dependency is required from a non .tsx file
- fix support of .json dependencies
- fix "SyntaxError: Unexpected token" when parsing .ts files with .js dependencies
- show environments when running bit show on remote component
v13.0.0
Summary
With over 35 new features, changes and bug fixes, Bit's v13 is focused on increased stability with over 20 bug fixes and support for common workflows including webpack resolve, tsconfig resolving, Vue resolve alias (Vue Webpack template) , Babel module resolver etc. Here are some of v13's highlights.
- add ability to configure custom module resolution in Bit (paths and aliases), to support absolute import statements for projects that use similar features using Webpack, Typescript, Babel, Vue alias etc. PR-#980, #852, #865, #869
- over 20 bug fixes including max call stack, import of binary files and more.
- environments transformed and refactored to act as native Bit extensions. PR-#931
- support "export X from Y" syntax of ES6 without importing X first. PR-#981
- support mixed mode of common-js and ES6. PR-#1036
- support Installing Bit using NPM using
sudo
. commit. - introducing new flags for
bit init
including--reset
and--reset-hard
. PR-#1012
As a reminder, we're switching to major versions to indicate that we, like many others, have been using Bit in production for a long time. v13 follows the previous v0.12 and looking forward we'll continue to follow semver like we've done since 2016.
New
- add ability to configure custom module resolution in Bit (paths and aliases), to support absolute import statements for projects that use similar features using Webpack, Typescript, Babel, etc.
- support "export X from Y" syntax of ES6 without importing X first.
- environments transformed and refactored to act as native Bit extensions
- introduce a new flag
bit init --reset-hard
to delete Bit files in order to start with a clean workspace - introduce a new flag
bit init --reset
to recreate bit.json and .bitmap files in case they are corrupted - add fork level to the
bit test
command - inject dist dir to node_path variable during test process in order for the author to tag and test custom-resolved components
- added missing programmatic flags for bit isolate cmd
- support mixed mode of common-js and ES6 ("require" and "import" together)
- recognize packages required from d.ts files
Changes
- remove alias t from bit test command (conflicts with tag command)
- do not override existing bit.json on bit init
- rename
no-launch-browser
tosuppress-browser-launch
in bit login flag - version validation during
bit tag
Bug fixes
- fix import of binary files
- fix error "Maximum call stack size exceeded" when tagging or building a large file
- handle bit diff for local components without specifying a scope
- backward compatibility for components with environments with latest version
- show dependent component id when trying to install missing environment
- prevent overriding local tags from remote components upon import
- throw an error when auto tag components have a newer version
- after auto-tagging a component with a pending update it no longer becomes
modified
- support for running bit log on local components without specifying scope name
- handle adding the same file with different letter cases (uppercase/lowercase)
- improve environments error handling
- support
bit move
andbit import --path
when running from an inner directory bit init
now recreates the scope.json if it does not exist
v0.12.13
New
- add
bit show --compare
data intobit diff
to easily see why a component is modified in one command - when running bit login, also configure bitsrc registry for npm
- adding scss to support ~
- support components with cyclic dependencies
Changes
- remove
--write
flag frombit import
, the newly introduced--merge
flag takes care of that - improve merge-conflict error on export to show all components with conflicts
Bug Fixes
- fix
bit remove
to not delete dependencies when they were imported directly - add error handling to bit login
- improve the error-message "unexpected network error has occurred" to provide some useful data
v0.12.12
New
- introduce a new command
bit diff
to show the files diff for modified components - support importing component on top of a modified one and merging the changes by adding
--merge
flag tobit import
- add -x flag to import (short for --extension)
Bug Fixes
- fix an end of line issue between os
- #927 fix a case of link file (file that only requires another file) is part of the component
- fix bit-move of a directly imported dependency
- fix importing a different version of a dependent when dependencies are not saved as components
- fix Yarn install when a relative path is written into package.json
- fix bit-merge and bit-checkout commands for Windows
- bug fix - import after tag command was showing an error "Cannot read property 'hash' of undefined"
- fix bit-add to enable marking files as tests of existing components
- bug fix - in some circumstances, same link files were written in parallel, resulting in invalid content
v0.12.11
New
- introduce a new command
bit merge
for merging a different version into the current version - introduce a new command
bit use
for switching between versions - add anonymous analytics usage with prompt
- support merging modified component to an older version of the component
Changes
- rename the command
bit use
tobit checkout
- block tagging when a component has a newer version locally, unless
--ignore-newest-version
flag is used - rename
--force
flag ofbit import
to--override
- change
bit list
to show only the authored and imported components, unless--scope
flag is used bit remove
removes components from a remote scope only when--remote
flag is used- improve the output of import command to show the imported versions
Bug Fixes
- fix bit-install to work from an inner directory
- improve external test and build errors to show the stack
- support
export { default as }
syntax when extracting relevant dependencies from link files
v0.12.10
New
- track directories for files changes and update .bitmap automatically
- show a component as modified (bit status) in case a new file has added to its rootDir or one of the files has renamed
- support updating dependencies versions from bit.json, package.json and bitmap files
- add an option to install peer dependencies in an isolated environment
- add the main file to file list if not specified during
bit add
- add
--all
flag tobit untrack
command
Changes
- ignore files named 'LICENSE'
- test components candidates for auto-tag before tagging them
Bug Fixes
- fix an issue with stylus dependencies from Vue files
- fix catastrophic backtracking when using Regex to find JSDoc
- fix environment import of latest version when an older version is imported
- fix exit status when ci-update fails
- fix bugs when running bit commands not from the workspace root