1081 Commits

Author SHA1 Message Date
Stephan Bönnemann
7a4c89f131 feat: add fallbackTag functionality and map "next" to "latest"
You can now map dist-tags onto "fallbackTags". E.g. if you want a
development channel like "next" and no version is currently published as "next"
semantic-release will fallback to "latest" to determine the new "next" version.
This is now the default for "next" -> "latest", but you can specify your own
mappings by adding "fallbackTags" to your `package.json`'s "release" field.

BREAKING CHANGE: In cases where you pushed a new commit with a "dist-tag"
configuration of "next" and no version was previously published as "next",
semanitc-release failed and did not publish a new version. It will now
automatically fall back to to "latest".
2015-08-22 21:36:11 +02:00
Stephan Bönnemann
2405453f2d docs(README): nice badge pyramid 2015-08-22 19:53:36 +02:00
Stephan Bönnemann
a16c36ed4d style: branch available in options not root of config v4.2.1 2015-08-22 19:49:09 +02:00
Stephan Bönnemann
5cc7da6035 fix(commits): add helpful error when lastRelease not in history
Closes #61, Closes #50
2015-08-22 19:31:29 +02:00
Stephan Bönnemann
a2d6db2ce5 docs(README): document verification pipelines v4.2.0 2015-08-22 14:55:25 +02:00
Stephan Bönnemann
700ec9d4ca feat(plugins): run verifications in series
With this new feature you can pass an array of plugin locations/names to
both "verifyConditions" and "verifyRelease" in your `package.json`'s "release"
field. This will run multiple verification plugins in series.
2015-08-22 14:52:01 +02:00
Stephan Bönnemann
7b8f632396 fix: clearer logput 2015-08-22 12:01:42 +02:00
Stephan Bönnemann
b47311d565 fix: correctly obfuscate githubToken with verbose loglevel v4.1.1 2015-08-22 11:34:50 +02:00
Stephan Bönnemann
810b3533dd refactor(nerf-dart): use module from npm 2015-08-20 14:31:18 +02:00
Stephan Bönnemann
b397ffe91f Merge pull request #58 from tlvince/get-last-release
Document the getLastRelease plugin
2015-08-18 15:13:21 +02:00
Tom Vincent
471a67fc31 docs(readme): document the getLastRelease plugin 2015-08-18 14:04:56 +01:00
Tom Vincent
557c46b8dd docs(readme): enhance plugin section grammar 2015-08-18 13:58:38 +01:00
Ari Porad
7ceac76689 feat(plugins): add getLastRelease hook
The code to determine the last-release is now in its own repository: https://github.com/semantic-release/last-release-npm
One can overwrite that behavior by defining a "getLastRelease" plugin. This way
one can decouple semantic-release from npm, e.g. by implementing a git-tag
based version. This is already worked on: https://github.com/semantic-release/last-release-git-tag

Closes #56
v4.1.0
2015-08-18 13:56:24 +02:00
Stephan Bönnemann
77349fcdf1 docs(readme): add badge section 2015-08-10 22:04:21 +02:00
Stephan Bönnemann
aae79cab72 docs(readme): remove table around badges 2015-08-10 21:58:45 +02:00
Stephan Bönnemann
55364ded40 fix(package): remove dependency bundling
Removes dependency bundling, because it's broken for scoped modules with npm
right now. Keeps npm from logging four ugly warnings upon install.
Can be reverted once https://github.com/npm/npm/issues/9175 is closed.
v4.0.3
2015-08-10 17:10:58 +02:00
Stephan Bönnemann
3a7be436e9 chore(package): update standard 2015-08-10 17:09:46 +02:00
The Gitter Badger
2b284fcc90 docs(readme): added Gitter badge 2015-08-10 17:03:20 +02:00
Stephan Bönnemann
fb1aa80f26 fix(package): fix version ranges for engines to include specified versions v4.0.2 2015-08-04 14:15:52 +02:00
Stephan Bönnemann
05490fe229 test(last-release): adapt registry-mock to how the registry actually behaves v4.0.1 2015-07-30 17:15:03 +01:00
Stephan Bönnemann
76d9e3d2be fix(last-release): encode scoped packages 2015-07-30 17:10:06 +01:00
Stephan Bönnemann
776ffd1256 docs(readme): further explanations and formatting improvements 2015-07-27 01:37:10 +02:00
Stephan Bönnemann
494f851ee7 docs(readme): more explanations for "what is this about" 2015-07-23 10:13:22 +02:00
Stephan Bönnemann
3bdeff3468 docs(readme): add cli and remove manual setup 2015-07-22 17:23:36 +02:00
Stephan Bönnemann
8dd79565d0 chore(package): add required engines 2015-07-22 17:20:05 +02:00
Stephan Bönnemann
a344f32e36 Merge pull request #49 from lewiscowper/typos
docs(readme): various grammar fixes
2015-07-22 10:58:26 +02:00
Lewis Cowper
e1c1b7419b docs(readme): various grammar fixes 2015-07-22 09:43:58 +01:00
Stephan Bönnemann
3eb842c297 docs(readme): initial documentation 2015-07-22 00:13:42 +02:00
Stephan Bönnemann
ddaec4f2bf test(integration): make em at least run locally v4.0.0 2015-07-19 16:21:40 +02:00
Stephan Bönnemann
22a283a027 chore: prepare to move back to main repo#next 2015-07-19 16:05:03 +02:00
Stephan Bönnemann
d9eeb3fcae refactor: use one config object instead of passing arguments to plugins on their own
This commit does a lot but it's all connected and tries to make everything more extensible and future proof.

1. CLI arguments and options from the "package.json" are no longer treated as two different things. You can now pass options either way.

BREAKING CHANGE: cli arguments are now normalized to camelCase, so e.g. `options['github-url']` is now `options.githubUrl`

2. Plugins no longer receive config they need one by one, but in one huge object. This way it's easier to pass more info in the future w/o breaking existing plugins that rely on the position of the callback in the arguments array.

BREAKING CHANGE: Plugins now need to read their passed options from one huge config object.

Old:
```js
module.exports = function (pluginConfig, foo, bar, cb) {…}
```

New:
```js
// ES5
module.exports = function(pluginConfig, config, cb) {
  var foo = config.foo
  var bar = config.bar
  …
}

// ES6
module.exports = function (pluginConfig, {foo, bar}, cb) {…}
```
2015-07-19 15:34:30 +02:00
Stephan Bönnemann
8892ec7f7a fix(plugins): typo in plugin name 2015-07-17 16:51:06 +02:00
Stephan Bönnemann
cf27cd16cc chore(package): ignore config files 2015-07-17 15:10:10 +02:00
Stephan Bönnemann
152d1f6874 chore(travis): simplify config 2015-07-17 14:56:56 +02:00
Stephan Bönnemann
626315e9fe feat(package): update condition-travis 2015-07-17 14:56:44 +02:00
Stephan Bönnemann
f5573f7494 chore(package): bump condition-travis 2015-07-17 10:01:52 +02:00
Stephan Bönnemann
2d3506cda1 chore: setup semantic-release 2015-07-17 09:35:53 +02:00
Stephan Bönnemann
72f9f8ea7c chore: rename to scripts 2015-07-16 19:36:42 +02:00
Stephan Bönnemann
59d852d6fb feat(post): initial 2015-07-16 17:30:23 +02:00
Stephan Bönnemann
ed05101a61 test(post): initial 2015-07-16 17:30:14 +02:00
Stephan Bönnemann
431babb42e fix(verify): ensure repo url in package.json is well formed 2015-07-16 14:07:52 +02:00
Stephan Bönnemann
dbea5cc1b1 feat(last-release): add custom dist-tag 2015-07-16 11:51:33 +02:00
Stephan Bönnemann
6cf1711151 test(last-release): add custom dist-tag 2015-07-16 11:51:22 +02:00
Stephan Bönnemann
ba5222af52 chore(package): update semver 2015-07-14 21:13:36 +02:00
Stephan Bönnemann
b1d9985ba3 test(plugins): test exported plugins 2015-07-14 21:13:36 +02:00
Stephan Bönnemann
13e2f5ce78 feat(cli): add verifyConditions hook 2015-07-14 21:13:36 +02:00
Stephan Bönnemann
af15fb4c61 fix(last-release): normalized registry url 2015-07-14 21:13:36 +02:00
Stephan Bönnemann
caf09c9be0 fix(cli): only write npmrc when necessary 2015-07-14 18:30:30 +02:00
Stephan Bönnemann
0316babf7a refactor(error): use error module 2015-07-14 12:25:36 +02:00
Stephan Bönnemann
43c8df0bfe fix(plugins): require user plugins relative to the cwd 2015-07-13 12:03:05 +02:00