https://github.com/markserv/robonaut
A monorepo manager for NPM+Git libraries.
https://github.com/markserv/robonaut
Last synced: 8 days ago
JSON representation
A monorepo manager for NPM+Git libraries.
- Host: GitHub
- URL: https://github.com/markserv/robonaut
- Owner: markserv
- License: mit
- Created: 2016-12-20T15:11:32.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-10T21:20:55.000Z (over 9 years ago)
- Last Synced: 2026-03-29T23:48:36.654Z (3 months ago)
- Language: JavaScript
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# robonaut
A mono-(poly)-repo manager for NPM+Git libraries.
Demo: [Youtube](https://www.youtube.com/watch?v=IfnSDgQjTVw)
## Disclaimer
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](https://github.com/markserv)). It is a very early tool that will likely mature alongside the code it is supporting.
## About
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 push` a package I had updated
- Forgetting to `npm push` a package I had updated
- Etc.
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:
1. Modules imported must already exist as an NPM package and a GIT repo.
1. Only one feature or patch is ever being worked on at a time. (this will change in the future)
1. Version numbers increments are cross-linkedm (packages that are worked on simultaneously will be incremented together).
## Usage
### embed
`robonaut embed`
Embeds robonaut in your directory, by setting up a `package.json` and a `robotnaut_modules` directory.
### prime
`robonaut prime pkg1,pkg2,pk3`
Adds an array of packages to `package.json` in `robonautDeps`.
### assemble
`robonaut assemble`
- Gets dependencies json from NPM
- Git clones the dependency
- Npm installs the repo
### fuse
`robonaut fuse`
Cross links all dependencies with `npm link`.
Example:
```
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
```
### scan
`robonaut scan`
Scans all modules for changed `git diff`.
### numerate
`robonaut numerate`
Increments all changed packages by the same pattern in the `package.json` file.
Example:
```
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
```
### transmit
`robonaut transmit "My Commit message!"`
Pushes code to their respective GIT repos, then publishes to the NPM repository.