GithubHelp home page GithubHelp logo

teambit / bit Goto Github PK

View Code? Open in Web Editor NEW
17.6K 178.0 901.0 163.76 MB

A build system for development of composable software.

Home Page: https://bit.dev

License: Other

JavaScript 1.75% Shell 0.13% PowerShell 0.05% Batchfile 0.01% CSS 0.02% TypeScript 93.27% Dockerfile 0.01% Ruby 0.01% SCSS 0.97% Stylus 0.01% Less 0.01% Sass 0.01% MDX 3.78%
react javascript typescript front-end node-js vue collaboration angular component-driven distributed

bit's Introduction

Website | Docs | Community | Bit Cloud

apache prs Circle Status Styled with Prettier Join Slack

Bit is a build system for development of composable software. It makes the composition of applications from independently versioned components seamless and fast.

Bit is similar in sense, but stands as the opposite for the "Monorepo" approach, which aims to center all code under a central repository. Instead, Bit is bringing simplicity for distribution of source code into independently versioned components, depending on each other.

People often use Bit to run a Monorepo, a Polyrepo or without using repositories at all.

The core innovation of Bit is the "Bit Component", a composable and versioned container for source code, whereas dependencies are first-class citizens. Components can be used as packages, ESM modules, runtime scripts, and any other artifact a build task can generate.

  • ๐Ÿ“ฆ Descriptive module names. Use components through descriptive package names. No aliases required.
  • ๐Ÿš€ Dependency versioning. Automatic detection and versioning of dependency changes. No more redundant package.json files.
  • โš“ Reusable development environments. Reusable components including all of your dev config. No more duplication of countless tsconfig.json, eslintrc or prettierrc configs.
  • โš’๏ธ Build pipelines. Independently build and store packages, bundles, and binaries.
  • ๐Ÿ‘“ Preview and auto-generated docs. Every component is an asset with auto-generated docs and component previews.
  • ๐Ÿ›ซ Change review. Use Lanes to propose and preview changes and collaborate on them with others.
  • ๐Ÿง‘โ€๐Ÿ’ป Component generators. Create new components using pre-built or custom templates for any type of component.

Getting started

Install Bit

Use the Bit installer to install Bit to be available on your PATH.

npx @teambit/bvm install

For better VSCode dev experience, install the Bit VSCode Plugin.

Create a new workspace

Run the following to create a workspace with a few components included, using the hello-world starter:

bit new hello-world my-hello-world --env teambit.community/starters/hello-world

For the quick start, we use two React components and one Node module, though you can create components using any JS-based framework. You can explore our official starters for Vue, Angular, and other supported tools or learn how to create your own.

Run the app

Your workspace maintains a number of components. One of these components is also an app. Run it using:

bit run hello-world-app

You can get any component to become an app by adding a single file to it.

Create components

Start creating components using the default component generators, or create your own.

bit create react buttons/button

You can view other built-in component templates, by running the bit templates command.

Use components

After creating a new component, start using it by adding an import statement in one of your workspace components.

import { Button } from '@org/scope-name.buttons.button';

Once added, Bit will autodetect the dependency between these components. Use bit show or the VSCode plugin to view the list of dependencies Bit detected for your components.

Create a remote scope

You can either use hosted scopes on Bit Cloud or by hosting scopes on your own. Use the following command to create your Bit Cloud account and your first scope.

bit login

Once done, change to your own owner and scope names using this command:

bit scope rename org.scope-name my-org.my-scope-name --refactor

This command will refactor your components to use the new owner and scope names.

Record component and dependency changes

Run snap or tag to record component changes, and assign a semantic version to them. Bit will version the dependents graph of each modified components.

bit snap --message 'initial release'

Snapped components are ready to be built upon 'export' (see next step). The build artifacts will also be stored in the component's new version ('snap').

By default, components are built using bit.cloud's CI platform, Ripple CI. However, you can run the components' build locally by adding the --build flag, or use your own CI platform. To learn more see Set up CI.

Export components to a remote scope

Export your staged components from your workspace to their remote scopes. This will make them available to be used by components outside of your workspace, and from your other projects.

bit export

Head over to your bit.cloud account to see your components build progress. Once the build process is completed, the components will be available for use in their remote scopes. ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰

Contributors

Bit is entirely built with Bit and you can find all its components on Bit Cloud.

Your contribution, no matter how big or small, is much appreciated. Before contributing, please read the code of conduct.

See Contributing.

License

Apache License, Version 2.0

bit's People

Contributors

amitgilad3 avatar benjgil avatar davidfirst avatar debs-obrien avatar dependabot[bot] avatar eyalse avatar giladshoham avatar giteden avatar guysaar223 avatar imsnif avatar itaymendel avatar jinjiang avatar jonisar avatar jonnysas avatar joshk2 avatar kutneruri avatar lalybar avatar leimonio avatar luvkapur avatar nachoaldamav avatar nitsancohen770 avatar ocombe avatar odedre avatar qballer avatar ran-y avatar ranm8 avatar ranyitz avatar tamarstern avatar urigat avatar zkochan avatar

Stargazers

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

Watchers

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

bit's Issues

Bit does not support linting for a component

I'm currently working on a project with eslint-airbnb preset.

I'm modifying a bit component written in flow, therefore the linter is completely broken. (showing bad messages because it is a different syntax)

My solution was to create a .eslintrc file with the following configuration inside of the component located in the inline_components directory:

{
"root": true,
"extends": ["airbnb", "airbnb-flow"]
}

(I also needed to install the "airbnb-flow" npm dependency in the root of my project)
https://github.com/johnie/eslint-config-airbnb-flow

Every linter uses a different file for configuration, I think we should define a file for the linter in order to enable linting, as the users use it to enforce code style and quality.

import is fetching an old version of the component after it's been updated.

I had a bug with one of the testers in bit-js project, so I needed to modify it from a different project. I opened a new project ($ mkdir new-project $ bit init) and modified bit.envs/testers/mocha.

$ bit modify bit.envs/testers/mocha

It was at version 5
I've modified it, committed and export it back to the scope

$ bit commit testers/mocha "remove bit-js from bit.json
$ bit export @this/testers/mocha bit.envs

After I got back to my original project (bit-js) I tried to import the latest version ( version 6 )

$ bit import bit.envs/testers/mocha

but instead of getting the version 6 I got version 5 and the bug occurred again.

After few retries I realized that it's not going to work and tried to import the version 6 directly, then I got an error that the version 6 does not exist.

import_error

Technical explanation:
Bit uses cache, and there is no way to remove it.
The bug occurred because the component-object (cached) had only 5 versions.
Bit should go and check the latest version in the remote scope before deciding to use the latest version specified in the cached component-object.

Right now, once you've imported a component, the current versions of this component stay cached and you can never update until you remove it.

A workaround would be to delete the .bit/objects directory.

add files and tests to an imported component

  • bit.json should be ignored when adding an existing imported component
  • node_modules should be ignored
  • package.json should be ignored
  • haven't recognized new test added to component
  • autogenerated index.js should be ignored

tab completion for zsh

bit commands can be pretty long. a tab completion for the commands will be very helpful, and help me work faster and with less typos.

ensure test/build environments on `bit modify`

when i want to modify a component, i expect the build/test environment to be set as part of the modify process. this is something that i need to do manually to develop the component anyway.

can't do 'bit config' outside of a scope

i used to be able to run 'bit config' (and all of the 'set' commands), when i'm not in a scope.

now when i run 'bit config' outside of a scope:
"
โ€บ bit config
fatal: scope not found. to create a new scope, please use bit init
"

There is no way to configure compilers

Babel compiler, for example, is extendable using plugins and presets.
Right now the compiler enables only one configuration for a certain component, which means we will need to create a different compiler component for each different configuration.
We also need to make the component configuration isolated is different developers have different project configurations (.babelrc on the root of the project).

We can maybe make the compiler reusable by enabling a .babelrc configuration file in the component directory.

Add React component as a bit component

Hi team,

I am just asking to know if there is a best practice or something to use React components as decoupled bit components covered as a bit scope and using them in projects as well and just curious that if there is also the opportunity to after publishing those components as npm packages and using them in applications as decoupled components to use them all among what applications we want by only importing them into our application file. I am visualizing what I think:

1st step: create a React component as a React component
2nd step: publish them to bit
3rd step: publish them to npm
4th step: import them into the project with a ES6 support (like import syntax, or something)

Thanks

Baris

`npm install -g bit-bin` fails on Windows

After an install attempt from the VS2015 Developer's command line, it errors out:

..\src\posix.cc(2): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory [C:\Users\kingd\
AppData\Roaming\npm\node_modules\bit-bin\node_modules\posix\build\posix.vcxproj]

Bit does not support flow type checking on the development phase of flow compiled components

The flow compiler does strip the types, but we can't enjoy the benefits of the type checking if we can't configure flow (with .flowconfig for example).

In my use case, I worked on a project written without flow.
The bit component I was working on was written with flow type annotations,
I didn't receive any errors from Flow.
in order to receive type checking, I've created a .flowconfig file in the directory of the component.

I do realize that other contributors won't get this configuration.

I think bit should address this problem so we could really use flow/typescipt and share the configurations between users.

Adding imported component

During bit add we should check if a folder path is a root dir of a component, if yes we should add the new files to this component and not as new component

Command/flag to add bit.json to a component i just created

when i issue a bit create command, it only create a implementation file. sometimes, while coding, i understand that i need some additional dependencies for the component, which are managed in it's bit.json. however, i haven't added the -j flag when creating the component. this means that the only possible way to add a bit.json file, is to manually add it.
i suggest re-reunning the bit create command, on the same componentID, with the additional -j flag, will simply add a bit.json file.

ability to undo local changes

when i modify a component (or create a new one), i might regret, so i need a way to undo my local (uncommitted) changes.

too many requests are being made (which causes very bad performance)

this is related to 'getManyWithAllVersions' method, which as I understand from Ran we might won't need it.

The reason I implemented it back then was to resolve a case where you import v2 of a component, make changes and then export it to a new scope.
If you don't have all versions, you're going to get an error when exporting it to this new scope. (which makes sense, as the component is not complete, and a future user might want v1 of that component).

The 4 requests made above is because there are two scopes, and it goes twice per scope. (one for the specified version and second for all other versions).

show diffs between versions of a component

before i either commit a component (or export), i want to see the diff between what i'm about to commit/export, to see that i've really made all the changes i wanted.
this will also help me with resolving merge conflicts.

Issue with bit export scope and ssh

Hey guys,

love the work, but running into issue with ssh on exporting to my scope.

Heres the error:

Error: Encrypted private key detected, but no passphrase given

I followed everything on getting started, using a Mac as well. I already had my own SSH already set up on my machine so using that. And works well with Github and other services.

Any ideas would be appreciated, thanks!

save direct dependency in package.json with relative path

Similar to #506 but with direct dependency.
For example, a component is-string depends on is-type. By default, is-type is saved as an NPM package. As such, the package.json of is-string will have a dependency, something like: "@bit/is-type": "0.0.1".
To update is-type, a user needs to run 'bit import is-type'. During the import, we fix the links and point is-type dependency of is-string to newly imported is-type.
However, in case the user wants to publish his package, it won't work. The npm installation of is-string will save is-type as a package and won't point to the imported is-type.
The solution is to update the package.json of 'is-string' and change the is-type entry from a package to a relative path inside the project.

a file that is added with lowercase instead of uppercase is allowed but not recognized by bit

when adding a file "Portal.js" as "portal.js" is allowed but when running bit status it shows as a missing dependency.

STR:

  1. git clone https://github.com/mui-org/material-ui.git
  2. bit init
  3. bit add src/internal/portal.js src/internal/portal.d.ts -t "src/internal/{FILE_NAME}.s
    pec.js" -i internal/portal -m src/internal/portal.d.ts
  4. bit status
  5. you can see that src/internal/Portal.js is missing. this is because we allowed the user to add it with lowercase(that's how it shows in the .bit.map.json) and it isn't recognized by bit unless it's uppercase.
  6. bit untrack
  7. bit add src/internal/Portal.js src/internal/Portal.d.ts -t "src/internal/{FILE_NAME}.s
    pec.js" -i internal/portal -m src/internal/Portal.d.ts
  8. bit status - now it is tracked correctly

No private key password asked

I'm following the Getting started guide and I run in a problem when trying to import babel. It complains about trying to read my encrypted private key without a password but no password was asked.

Running OS X 10.11 (El Capitain) + tmux + zsh

txgruppi@txgruppi-pro15:~/c/t/b/hello-world$ bit import bit.envs/compilers/babel --compiler --save
Error: Encrypted private key detected, but no passphrase given
    at Client.connect (/usr/local/Cellar/bit/0.5.0/libexec/node_modules/ssh2/lib/client.js:230:15)
    at /usr/local/Cellar/bit/0.5.0/libexec/dist/scope/network/ssh/ssh.js:258:14
    at SSH.connect (/usr/local/Cellar/bit/0.5.0/libexec/dist/scope/network/ssh/ssh.js:253:14)
    at connect (/usr/local/Cellar/bit/0.5.0/libexec/dist/scope/network/network-lib.js:36:96)
    at Remote.connect (/usr/local/Cellar/bit/0.5.0/libexec/dist/remotes/remote.js:66:56)
    at Remote.fetch (/usr/local/Cellar/bit/0.5.0/libexec/dist/remotes/remote.js:107:19)
    at /usr/local/Cellar/bit/0.5.0/libexec/dist/remotes/remotes.js:158:27

Mobile Site - scaling and z-index

When browsing bit / utils on bitsrc.io, the layout does not properly scale to my viewport. Using an LG V10 with Chrome 57 and Android 6.
The hamburger menu drop down also renders below the cards, obstructing the view of its options. See screenshot:
screenshot_2017-05-02-07-22-38

Bit import on fresh install MacOS gives obscure error

OS: MacOS 10.12.6
Shell: zsh 5.3.1 (x86_64-apple-darwin16.6.0)
Installed bit via sudo npm install bit-bin --global

Bit config, init and status pass ok but when I try to import I get the following:

~/d/bitsrc โฏโฏโฏ bit import bit.utils/validator/is-email
Error
    at unpackCmd (/usr/local/lib/node_modules/bit-bin/dist/utils/unpack-command.js:15:11)
    at /usr/local/lib/node_modules/bit-bin/dist/scope/network/ssh/ssh.js:247:75
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

When I go to unpackCmd (/usr/local/lib/node_modules/bit-bin/dist/utils/unpack-command.js:15:11) and change line 15 from:

throw new Error(str);
to
throw new Error(err);

And run again I get:

~/d/bitsrc โฏโฏโฏ bit import bit.utils/validator/is-email
Error: SyntaxError: Unexpected end of JSON input
    at unpackCmd (/usr/local/lib/node_modules/bit-bin/dist/utils/unpack-command.js:15:11)
    at /usr/local/lib/node_modules/bit-bin/dist/scope/network/ssh/ssh.js:247:75
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Proper validation error handling is needed here for configuration issues

Bit Commit and Bit Export throws "Error: Cannot find module"

Sorry for all the overkill. I love the spirit of this project and thought this detailed error report would help.
TLDR: Use recommended npm install on mac(scroll down to #3rd Attempt, cant get this markdown link to work...)

Machine spec via image:
screen shot 2017-05-01 at 09 28 31

1st Attempt(didn't work)

Bit installed with brew:
screen shot 2017-05-01 at 09 38 12

While following the walkthrough I came upon these errors when running the following commands:
bit commit is-string 'initial commit' Note that the commit seems to have been executed successfully despite the error.

screen shot 2017-05-01 at 09 34 23

bit export @this/is-string @scopy produces same directory type error:

screen shot 2017-05-01 at 09 35 16

Second Attempt(didn't work)

I rm -rf the hello-world and scopy directory and tried the steps again only this time i ran npm init -y on the hello-world dir before running npm i -bit-js because without doing the npm i bit-js installed bit-js one level up. This produced the same result up to this point. Screenshots below:

screen shot 2017-05-01 at 09 38 12
screen shot 2017-05-01 at 09 48 37
screen shot 2017-05-01 at 09 49 51

3rd Attempt(Works!)

## 3rd Attempt(Works!)
Steps:

  1. rm -rf hello-world and scopy directories.
  2. brew remove bit
  3. Install bit globally with npm.

screen shot 2017-05-01 at 10 05 05

  1. Follow getting started instructions, successful bit commit which failed previously.
    screen shot 2017-05-01 at 10 09 27

  2. I run npm init on hello-world so npm i bit installs in /hello-world dir instead of parent.
    Run npm init.
    screen shot 2017-05-01 at 10 31 15
    Run npm i bit-js.
    screen shot 2017-05-01 at 10 31 34

  3. Creating index.js, bit commit. Works. bit show @this/is-string. Works.
    screen shot 2017-05-01 at 10 31 59

  4. bit status. Works.
    screen shot 2017-05-01 at 10 32 17

  5. Create scopy dir for remotes, add remotes, export (bit remote add, bit export) commands work. bit remote add file:///Users/devworx/scopy --global.
    screen shot 2017-05-01 at 10 41 47

Support dev/peer package dependencies

  • Add to the model a new key - devPackageDependencies which contain all the deps from test files
  • show the devPackageDependencies in bit show

We should check if a dependency is a peer dependency in the package.json, if yes we should do the same.

We should check the tester package dependencies and exclude them from the packages dependencies in test files.
For example if a test file require chai, but there is chai tester, we shouldn't add chai as package dependency of the component since the tester is responsible for import it.

Bit CLI has issue tagging modified components

User info

Host system: MacOS Sierra 10.12.6
Terminal: Hyper (bash)
Node version: 8.2.1 (using nvm 0.33.4)
npm version: 5.5.1
Bit version: 0.10.9
Component: https://bitsrc.io/enricotelus/bit-test/components/button

Background

I was able to use bit successfully to create, stage, tag, and export a component that is now at v1. When I made a change, my bit status listed the component under 'modified components', which is great. Though the next part gets cryptic:

$ bit tag -am 'add text to button'
TypeError: component.addVersion is not a function
    at SourceRepository._callee4$ (/Users/enrico/.nvm/versions/node/v8.2.1/lib/node_modules/bit-bin/dist/scope/repositories/sources.js:449:27)
    at tryCatch (/Users/enrico/.nvm/versions/node/v8.2.1/lib/node_modules/bit-bin/node_modules/regenerator-runtime/runtime.js:65:40)
    at Generator.invoke [as _invoke] (/Users/enrico/.nvm/versions/node/v8.2.1/lib/node_modules/bit-bin/node_modules/regenerator-runtime/runtime.js:299:22)
    at Generator.prototype.(anonymous function) [as next] (/Users/enrico/.nvm/versions/node/v8.2.1/lib/node_modules/bit-bin/node_modules/regenerator-runtime/runtime.js:117:21)
    at step (/Users/enrico/.nvm/versions/node/v8.2.1/lib/node_modules/bit-bin/dist/scope/repositories/sources.js:109:191)
    at /Users/enrico/.nvm/versions/node/v8.2.1/lib/node_modules/bit-bin/dist/scope/repositories/sources.js:109:361
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Expected result

I expected my button component to tag at v2 and become staged for exporting.

Additional info

Not sure why it was working earlier, and then suddenly not working. For added context, my project tree does have two .bit projects since I'm testing this tool out ๐Ÿ˜ƒ

image

bit import should save the component in package.json with relative path

in the project and not as an npm package. (e.g. @bit/is-string: ./components/is-string).

If a component was a dependency before and was saved in package.json as an npm package, change it to be a relative path in the project upon bit import.

This task should solve the following issue:
A user writes code that would be published as an npm package. In his local development environment, he imported a component using 'bit import' command and required it in his source code with the absolute syntax '@bit/component'. On his local, it works because of the symlink generated from ./components to node_modules/@bit. However, users who install his package, won't get this symlink, which results in a broken package.

files added under one component although it was not specified

I created a component called src/enums and then added the rest of the files under the src folder. this resolved in all files under the src folder to be added to the src/enums component.

STR:
1.download the attached project + extract. * here you can see the end result. https://app.zenhub.com/files/79723839/f8610d8f-3224-46c8-8cac-339a8f5104df/download
2. bit untrack
3. bit add src/enums.js
4. bit add src/*.js
*look at the .bit.map.json file to see the problematic behavior.

*open the attached folder to see this behavior.

'bit commit...' causes an error

iMac:leonbit2 leon$ bit status
inline components
     > global/is-substring
     > is-substring/impl.js
                         

sources waiting for export
     > @this/global/is-substring - 1
iMac:leonbit2 leon$ bit commit is-substring 'initial commit'
โก€โ € persisting...{ Error: Cannot find module './build/Release/DTraceProviderBindings'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/Cellar/bit/0.6.0/libexec/node_modules/dtrace-provider/dtrace-provider.js:17:23)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3) code: 'MODULE_NOT_FOUND' }
{ Error: Cannot find module './build/default/DTraceProviderBindings'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/Cellar/bit/0.6.0/libexec/node_modules/dtrace-provider/dtrace-provider.js:17:23)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3) code: 'MODULE_NOT_FOUND' }
{ Error: Cannot find module './build/Debug/DTraceProviderBindings'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/Cellar/bit/0.6.0/libexec/node_modules/dtrace-provider/dtrace-provider.js:17:23)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3) code: 'MODULE_NOT_FOUND' }
โ ‰โ ฉ persisting...

deprecate component

add ability to update a component to be set as 'deprecated', so that others will know that this in unmaintained. also, for a deprecated component, i want to suggest an alternate component to be used instead.
i also think that when searching or listing components, the deprecated ones should not be listed. furthermore, if someone is still using it (by importing), while importing the component, a warning message should appear.

Allow component directory to be added that uses package.json instead of index.js

The component style adopted by my team requires a component to adhere to the following file structure:

ComponentName/
   - ComponentName.js
   - package.json

Currently when adding a component, I receive this error:

fatal: the main file index.[js, ts, css, scss, less, sass, jsx, tsx] was not found in the files list src/components/Input/Input.js, src/components/Input/Input.scss, src/components/Input/package.json

I am requesting that the requirements for adding a component be expanded to include components organized in the manner above.

Roadmap for supporting other languages

From the Drivers page on the Bit Wiki...

Bit components are language agnostic. You can write components in any language you'd like, and Bit will be able to manage them. To facilitate this behavior Bit requires a driver for each programming language, so that the components will be accessible to used in your code.

A JavaScript driver already exists, but I would like to know if there is a roadmap for building drivers in other languages (Ruby, Python, Lisp, C#, etc.). At the very least, I'd like to know how to build my own driver for a language, so that I could write code in one language and import it for use in a entirely different codebase.

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.