Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.3.0 release documentation #376

Merged
merged 11 commits into from
Oct 21, 2016
2 changes: 1 addition & 1 deletion cmd/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import (
)

// Version describes the version for packaging
const Version = "0.2.0"
const Version = "0.3.0-beta1"

// versionCmd represents the version command
var versionCmd = &cobra.Command{
Expand Down
25 changes: 25 additions & 0 deletions docs/content/release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "Release Notes"
date: "2016-10-21"

menu:
main:
identifier: release-notes
weight: 50

---

Converge is in active development. APIs are not guaranteed until a 1.0 release.

`Project` links to the project for the release.

`Milestone` links to issues and pull requests for the release.

## Releases

| Release | Date | Project | Milestone |
|---------|------|---------|-----------|
[0.1.0](https://github.com/asteris-llc/converge/releases/tag/0.1) | 2016-06-09 | | [Milestone](https://github.com/asteris-llc/converge/milestone/1?closed=1)
[0.1.1](https://github.com/asteris-llc/converge/releases/tag/0.1.1) | 2016-06-13 | | [Milestone](https://github.com/asteris-llc/converge/milestone/4?closed=1)
[0.2.0]({{< ref "release-notes/0.2.0.md" >}}) | 2016-09-26 | [Project](https://github.com/asteris-llc/converge/projects/1) | [Milestone](https://github.com/asteris-llc/converge/milestone/8?closed=1)
[0.3.0-beta1]({{< ref "release-notes/0.3.0.md" >}}) | 2016-10-21 | [Project](https://github.com/asteris-llc/converge/projects/2) | [Milestone](https://github.com/asteris-llc/converge/milestone/7?closed=1)
45 changes: 45 additions & 0 deletions docs/content/release-notes/0.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
title: "0.2.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like we need a "slug" field here too since it has a dot. slug: "0-2-0" will do the trick

date: "2016-10-16"
slug: "0-2-0"

menu:
main:
parent: "release-notes"
identifier: 0.2.0

---

## Release Date

2016-09-26

## Features

- Set environments for shell commands
- Support for Docker Containers and Images
- Support for creating & deleting unix users and groups
- RPC using grpc.io
- Expose basic platform information via the platform module

## Bug Fixes

This releases fixes several race condition (#266) and ordering (#254) bugs that would cause Converge to error out of otherwise valid executions.

If you've been trying to use boolean values in your params, you're in luck. That works now! (#251)

Internally, beta 2 simplifies how `check` and `apply` interact (#240) and shrinks the Status interface (#237). Documentation for module authors will be updated by the final release of Converge 0.2.0.

Lastly, logging was quite a bit too chatty about the stages Converge goes through when loading and executing a graph. This release scales logging back a bit (#248).

## Examples

We have new examples for Docker Swarm mode (#267) and the ELK (Elasticsearch, Logstash, and Kibana) stack (#272). They're located in the `examples/` directory of the source, and are intended to be standalone end-to-end examples.

## Linting

We started using Code Climate for linting in this release. We have a 4.0 (such good students.) You can [view our score using Code Climate's web interface](https://codeclimate.com/github/asteris-llc/converge) or by clicking the badge in the README.

## Support

We provide support via [the Converge Slack team](http://converge-slack.aster.is/) and through [GitHub issues](https://github.com/asteris-llc/converge/issues)
157 changes: 157 additions & 0 deletions docs/content/release-notes/0.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
title: "0.3.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

slug: "0-3-0"

date: "2016-10-20"
slug: "0-3-0"

menu:
main:
parent: "release-notes"
identifier: 0.3.0

---

## Release Date

2016-10-21 0.3.0-beta1

## Features

This release includes a number of significant improvements to the core engine including conditionals,
wait queries, sequential task groups, and the ability to use lists and maps in parameters. The internal API has
also been simplified to make it easier for programmers to create new modules.

### Module Improvements
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"RPM Resource" would be a better subhead


#### RPM Resource

RPM package install/uninstall support has been added via [#373](https://github.com/asteris-llc/converge/pull/373).

```hcl
rpm.package "mc" {
name = "mc"
state = "present"
}
```

#### User and group

Linux user groups can now be modified via [#279](https://github.com/asteris-llc/converge/issues/279)

#### wait.query and wait.port

Converge now supports waiting for a task to complete or port [#334](https://github.com/asteris-llc/converge/pull/334).
Users can create a dependency for a port to be open or a condition to be met.

Below is an example of waiting for a port to be open using the `wait.port` resource:

```hcl
wait.port "8080" {
host = "localhost"
port = 8080
interval = "1s"
max_retry = 10
grace_period = "2s"
}
```

The following shows using `wait.query` to wait using a task:

```hcl
wait.query "service-health" {
check = "nc -z localhost 8080"
interval = "1s"
max_retry = 10
grace_period = "1s"
}
```

Wait is documented at: [wait.port]({{< relref "resources/wait.port.md" >}}) and [wait.query]({{< relref "resources/wait.query.md" >}}).


### Engine Improvements

#### Conditional Support

Support for conditionals via [#362](https://github.com/asteris-llc/converge/pull/362).

In the following example, the contents of file `greetings.txt` depend on the value of
the `lang` parameter:

```hcl
param "lang" {
default = ""
}

switch "test-switch" {
case "eq `spanish` `{{param `lang`}}`" "spanish" {
file.content "foo-file" {
destination = "greeting.txt"
content = "hola\n"
}
}

case "eq `french` `{{param `lang`}}`" "french" {
file.content "foo-file" {
destination = "greeting.txt"
content = "salut\n"
}
}

```

#### Task Groups

Tasks can be assigned to a group to force multiple tasks to run
one at a time instead of in parallel. Locks are added as a node in the graph and released
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is slightly out of date with the latest implementation. locks are no longer nodes in the graph; instead we just ensure all nodes in the group are dependent on another node in the group.

after all tasks sharing the lock are complete. [#392](https://github.com/asteris-llc/converge/pull/392)

For example, `apt` package installs cannot run in parallel. In the following example
each task with the `apt` lock is run sequentially.

```hcl
task "install-jq" {
check = "dpkg -s jq >/dev/null 2>&1"
apply = "apt-get update 2>&1 > /dev/null && apt-get -y install jq"
group = "apt"
}

task "install-build-essential" {
check = "dpkg -s build-essential >/dev/null 2>&1"
apply = "apt-get update 2>&1 > /dev/null && apt-get -y install build-essential"
group = "apt"
}
```

#### Enhanced Parameter Values

`bool`, `list`, and `map` types have been added to parameters via [#340](https://github.com/asteris-llc/converge/pull/340).

See [values]({{< ref "params-and-templates.md#Values" >}})

#### Output Improvements

Rendered graphs have been cleaned and arrows now indicate the order of tasks [#387](https://github.com/asteris-llc/converge/pull/387).

Text output for changes is now aligned via [#317](https://github.com/asteris-llc/converge/pull/317).


## Bug Fixes

- docker.container regression [#343](https://github.com/asteris-llc/converge/issues/343)
- handle parameters with valid zero value [#338](https://github.com/asteris-llc/converge/issues/338)
- shell module should not set StatusLevel based on process exit code [#323](https://github.com/asteris-llc/converge/issues/323)
- param dependency fails in `samples/shellContext.hcl` [#313](https://github.com/asteris-llc/converge/issues/313)
- Execution Engine Ignoring Warning Levels [#243](https://github.com/asteris-llc/converge/issues/243)
- Make pipeline functions use mult-return instead of Either [#225](https://github.com/asteris-llc/converge/issues/225)
- cmd/server.go: use errgroup instead of waitgroup [#363](https://github.com/asteris-llc/converge/pull/363)

## Examples/Documentation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

passive voice should be fixed in this section

...

I mean, paragraphs in this section should be in the active voice.


A Docker image was created in [#372](https://github.com/asteris-llc/converge/pull/372) to speed up Wercker builds and automated tests.

Documentation was updated in [#371](https://github.com/asteris-llc/converge/pull/371) so that links like
[converge.aster.is/0.2.0](https://converge.aster.is/0.2.0) will resolve documentation for that version.

## Support

We provide support via [the Converge Slack team](http://converge-slack.aster.is/) and through [GitHub issues](https://github.com/asteris-llc/converge/issues)