Releases: northbrookjs/northbrook
Build Dependency Graphs
Northbrook will now traverse all of your packages dependencies, building a
graph of inter-dependencies between only packages being managed by Northbrook.
This is done to sort your packages in a more correct order that will allow tools
that do building or bundling of some kind (maybe others!) that deal with these
inter-dependencies directly or indirectly more reliable.
In the case of circular dependencies being detected an error will be thrown informing you to
add configuration to eliminate the errors you are having. The package identified in the
error message will from then on be excluded from northbrook link
and continue to use
NPM installed packages (or however you chose to setup your projects) to avoid impossible Cycles.
An example:
As displayed a new property to a Northbrook configuration object has been added named circular
that shouldn't have to be used too often.
Plugins will now have access to a Dependency Graph object with the following type signature
class DepGraph {
dependenciesOf(packageName: string): Array<string>;
configOf(packageName: string): Pkg;
paths(): Array<string>;
packages(): Array<Pkg>;
packageNames(): Array<string>;
}
v3.0.0-northbrook
Removes northbrook init
in favor of using a postinstall script to configure things.
v2.5.0
Add the ability to skip git commands that are normally run when using northbrook release --skip-git
the only exception to this command is that git tags are always generated.
This release also exports all utility functions from the public API. This will become more and more useful as time goes on, as more utility functions will be targeted at plugins directly.
v2.4.0-northbrook
Northbrook now does a few new things.
The packages
field is no longer mandatory, if none is defined it defaults to the directory with your northbrook.json
The output is nicer or most things. Colors have been added to distinguish different parts of prompts and output.
Also a scripts section has been added that mirrors that of npm run
can be used as nb run <scriptName>
// northbrook.json
{
"scripts": {
"test": "mocha -r buba/register"
}
}
Very powerful when used in conjunction with extends
. Since you can simply reuse commands by using a base configuration
When you runnb release --check
it will go through the motions and tell you what release it plans to do, and what it would prepend to your changelog when not run in check mode.
nb exec
supports running commands that require interactive input (prompts). So you could do nb exec -- nb commit
for instance. (No good reason to, but it's possible)
When running nb release
right before executing npm publish
it will now run npm login
for you.
It's quite often that you will need to change users to release specfic packages, and very easy to forget you need to. If you don't need this feature you can use the --skip-login
flag.