A mono-(poly)-repo manager for NPM+Git libraries.
Warning: Robot is packed full of religious convictions that other developers may strongly disagree with.
Robonaut was haked together in 3 days, and is undoubtedly very brittle. It was designed to work with one open-source project (markserv). It is a very early tool that will likely mature alongside the code it is supporting.
Robonaut is designed to manage a NodeJs project that contains many repos. I found that as my project was scaling in size and complexity, I would often make stupid, simple, human errors like:
- Forgetting to increment version numbers
- Increment version numbers incorrectly
- Forgetting to
git pusha package I had updated
- Forgetting to
npm pusha package I had updated
Usually this would result in a Travis build failing, followed by a frantic igging to find out why. (Hey... everything was working fine on my computer!) Clearly I needed to enlist the help of a trusty robot.
Robonaut (currently) works on a few basic principles:
- Modules imported must already exist as an NPM package and a GIT repo.
- Only one feature or patch is ever being worked on at a time. (this will change in the future)
- Version numbers increments are cross-linkedm (packages that are worked on simultaneously will be incremented together).
Embeds robonaut in your directory, by setting up a
package.json and a
robonaut prime pkg1,pkg2,pk3
Adds an array of packages to
- Gets dependencies json from NPM
- Git clones the dependency
- Npm installs the repo
Cross links all dependencies with
Robonaut 🏁 LINKED... markserv-cli ⇠ ━┓ ┗━ ⇠ markserv-contrib-app.github markserv-contrib-app.github ⇠ ━┓ ┣━ ⇠ markserv-contrib-inc.html ┣━ ⇠ markserv-contrib-inc.less ┣━ ⇠ markserv-contrib-inc.markdown ┣━ ⇠ markserv-contrib-mod.dir ┣━ ⇠ markserv-contrib-mod.file ┣━ ⇠ markserv-contrib-mod.html ┗━ ⇠ markserv-contrib-mod.http-404
Scans all modules for changed
Increments all changed packages by the same pattern in the
Major Minor Patch _______ _______ + markserv-cli master (1.0.61) » 1.0.62 markserv-contrib-app.github master (1.0.75) » 1.0.76 markserv-contrib-inc.less master (1.0.5) » 1.0.6 markserv-contrib-mod.http-404 master (1.0.6) » 1.0.7
robonaut transmit "My Commit message!"
Pushes code to their respective GIT repos, then publishes to the NPM repository.