Skip to content
Branch: master
Go to file
Code

Latest commit

davidfirst committed 78ba57c Jul 17, 2020
* implement the "lanes" feature, similar to the description in #1986. 

* implement the "snaps" feature, similar to the description in #1985. 

* disconnect the hash calculation of a Version object from its path, it helps to be flexible with schema changes and avoid HashMismatch exceptions

* snap and tag are working in conjunction

* snap - have head snap as Ref in memory

* fix modified status after snap

* change parent hash prop if version hash is changed

* change parent prop to be an array of parents

* fix snap head upon untag

* fix untag for snaps

* provide a more descriptive error message when a hash is missing

* avoid fetching all versions when not needed

* fix bug of second tag after snap

* fix bit-log to show snaps. support diverged snaps history. fix import and export of snaps. write remote head to a new file at refs/remote

* implement import --object when the local head is different than the remote head

* (wip) started working on bit lane command

* revert the implementation of saving different "Component" objects per lanes (done by dd20bb1)

* implement Lane object (inherit BitObject)

* add basic validation for "lane" object, introduce "bit cat-lane" command, fix "bit status" when snapping on master then on a new lane

*  remove scope-name from lane-id

* fix bit diff to work with snaps

* bit checkout is working for Snaps

* add tests for bit merge with snaps

* recognize diverged components, suggest to merge them in bit status and throw error on bit import in case --merge was not entered

* fix status of merge-pending to show the number of snaps existing on local/remote

* add the common snap before diverge data into the diverge results

* implement a snap-merge of diverged components

* fix bit-status to show an unresolved component as such, implement bit merge --resolve

* implement merge --abort

* prevent tag/snap/checkout/merge a component with conflicts, enable untag/remove

* basic lane export is working

* write exported components heads into refs/remote

* started implementing "bit import" lanes

* move current-local-name from .bitmap to scope.json

* basic functionality of switching between master to a lane is working

* add test for "bit diff" when on a lane, fix "bit status" when snapped on a lane, refactor "diverge" data

* Started working on "bit merge" for lanes. fix tag & checkout lane for multiple components

* fix tests, fix exporting from master to write the snaps into the remote ref

* basic "bit merge" of lanes is working

* fix merging from a remote lane into master

* start working on noSnap flag

* consolidating merge-lanes with snap-merge logic. add merge-snaps output

* implement --no-snap and --message flags of bit-merge

* add existingOnWorkspaceOnly flag for bit-merge

* add e2e-test and output when using --existing flag for bit-merge

* implement bit lane --merge and --not-merged flags

* add a flag "new-lane-name" for bit-checkout

* introduce new flags for "bit import": --new-lane-name and --checkout

* copy components data from origin lane to a newly created lane (except master)

* introduce "bit switch" to switch/create/import lanes

* introduce "bit fetch" command to fetch remote objects

* improve lane-id

* bit fetch is working, change tests to work with bit-switch and bit-fetch

* basic case of switching from a lane back to master is working

* basic case of importing a component when checked out to a lane

* change bit-lane to function only as list/show not as "add". change the output according to the new specs

* started working on workspace-lanes

* implement workspace-lane object to save the current (checked out) versions per local lane

* export with no ids when checked out to a lane, exports the lane

* change the export output to indicate that lanes were exported

* separate getAllBitIds and getAllIdsAvailableOnLane methods to not use the same cache

* implement remove local lanes

* enable fetching lane list from a remote

* when user is checked out to a lane, "bit remove" removes the component from the lane only

* enable removing remote lanes

* block tagging when on a lane for now. we might change it later

* implement auto-snap

* skip a test about fetching dependencies parents for now, it will be back once the backward compatibility is implemented

* implement auto-snap on lanes

* fix ModelComponent.latest() to always work with the current lane

* skip an e2e-test for now until backward compatibility is implemented

* support feature-toggle mechanism

* backward compatibility: do not save snaps.head and component parents when lane feature is disabled

* backward compatibility - fix import from old clients

* throw errors when trying to use lanes/snaps and the feature is disabled

* re-enable some tests now that backward compatibility is supported

* extract create-lane functionality to a new file

* extract export-lanes functionality to a new file

* refactoring. make sure fetch api gets bit-ids or remote-lane-ids. (remove the hack of converting lane-id into bit-id)

* clean some unneeded flags on checkout command

* fix MergeConflictOnRemote to be backward compatible

* refactoring and mark lane flags as experimental

* remove some dups snap/tag

* extract switch lane logic from checkout-version.ts to switch-lanes.ts

* consolidate snap-model-component into tag-model-component

* clear confusion between remoteHead and laneHeadRemote

* extract merge-lanes code to a new file merge-lanes.ts, refactor RemoteLane to use RemoteLaneId whenever possible

* extract the diverge-data into a new file, add a new prop "remoteHead" and avoid adding the master remote into laneRemoteHead

* extract the logic of version traversal into a new file

* remove the hack of reseting the model-component heads

* fix some forward compatibility issues with index.json

* fix RemoteLaneId to indicate that a scope is mandatory

* change ModelComponent.snaps.head to ModelComponent.head

* fix bug when merging components to master

* change variables with snapHead to head

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Jun 11, 2020
Jan 30, 2020
Jan 5, 2020

README.md

apache prs Circle Status styled with prettier Join Slack Tweet

Bit is the platform for collaborating on components

Bit Workflow

DocumentationTutorialsQuick start guide Workflowsbit.dev components cloudVideo demo

What is Bit? 🤔

Bit is an open-source cli tool for collaborating on isolated components across projects and repositories.
Use Bit to distribute discrete components from a design library or a project into a standalone reusable package and utilize it across applications.
You can set up your own server for components collaboration, or use the bit.dev cloud hosting for private and public components sharing.

Why Bit? 🎖️

Bit facilitates the process of collaborating on UI components. Team members can share, maintain, and synchronize isolated components from different projects.

Bit allows teams to:

  • Increase code reusability
  • Increase design and development efficiency
  • Retain UI and UX consistency
  • Increase project's stability

Key Features 🔑

  • Extract a component for sharing directly from an existing library or project.
  • Validate the component's independence by building and testing each component separately from the rest of the project.
  • Change the source code of shared components from any application that utilizes it.
  • Get published changes in components on top of local modifications.
  • Contribute back changes made to components directly from the consuming applications.
  • Automatically wrap each component as an npm package.
  • Distribute discrete components instead of a single massive package.
  • Automate component versioning according to changes in its dependencies.
  • Use with leading frameworks and tools: React, Vue, Angular, Mocha, Jest.
  • Works alongside Git, NPM, and Yarn.

Bit is working with Javascript and Javascript frameworks:

Installation 🚪

Using npm:

npm install bit-bin --global

Using yarn:

yarn global add bit-bin  

Bit cli requires node 8.12 and above. Check other installation methods.

bit.dev cloud 🌩️

Use bit.dev cloud hosting solution as a shared server and showcase for your components.

Contributing 🎗️

Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct.

See Contributing.

License 💮

Apache License, Version 2.0 Analytics

You can’t perform that action at this time.