aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2016-12-04 02:30:52 -0800
committerJakob Odersky <jakob@odersky.com>2016-12-04 02:30:52 -0800
commit1564c626c465b8f5953f4b663112a7f92387c959 (patch)
tree766f471d1c82b1bbc5c0f3252402cd0ad8cde759
parent3eca02ce55e37b5e3ce2d3951c17ddcf22025d5f (diff)
downloadakka-serial-1564c626c465b8f5953f4b663112a7f92387c959.tar.gz
akka-serial-1564c626c465b8f5953f4b663112a7f92387c959.tar.bz2
akka-serial-1564c626c465b8f5953f4b663112a7f92387c959.zip
Upgrade version
-rw-r--r--_config.yml2
-rw-r--r--documentation/3.0/developer.md11
-rw-r--r--documentation/3.0/manual.md8
3 files changed, 9 insertions, 12 deletions
diff --git a/_config.yml b/_config.yml
index 8479325..4d55e0d 100644
--- a/_config.yml
+++ b/_config.yml
@@ -2,5 +2,5 @@
title: flow
description: Serial communication library for Akka and Scala.
url: "https://www.jodersky.ch/flow"
-version_latest: 3.0.3
+version_latest: 3.0.4
version_docs: 3.0
diff --git a/documentation/3.0/developer.md b/documentation/3.0/developer.md
index 3f74890..62f64d4 100644
--- a/documentation/3.0/developer.md
+++ b/documentation/3.0/developer.md
@@ -61,11 +61,10 @@ The project and package versions follow a [semantic](http://semver.org/) pattern
Usually (following most Linux distribution's conventions), shared libraries produced by a project `name` of version `M.m.p` are named `libname.so.M.m.p`. However, since when accessing shared libraries through the JVM, only the `name` can be specified and no particular version, the convention adopted by flow is to append `M` to the library name and always keep the major version at zero. E.g. `libflow.so.3.1.2` becomes `libflow3.so.0.1.2`.
# Testing
-
`flow-samples` directory contains fully functional application examples of flow. To run an example, change to the base directory of flow and run sbt samples<SampleName>/run.
All projects, including samples, can be listed by running sbt projects.
-To be able connect You can use real device (arduino) burned with sample-echo (`dev/arduino-terminal`) code, or create Virtual Serial Port pair
+To be able connect you can use real device (arduino) burned with sample-echo (`dev/arduino-terminal`) code, or create Virtual Serial Port pair
[socat (SOcket CAT)](http://www.dest-unreach.org/socat/) – multipurpose relay – is a command line based utility that establishes two bidirectional byte streams and transfers data between them.
socat is #4 on the Top 100 Network Security Tools list, available in most distro repositories (on Debian/Ubuntu sudo apt-get install socat does the trick), really light on resources, and very efficient.
@@ -102,15 +101,13 @@ socat -d -d pty,raw,echo=0 "exec:/bin/cat,pty,raw,echo=0"
```
# Publishing and Releasing
-The release process is managed with the `sbt-release` plugin. See 'project/Release.scala' for a description of the various steps involved.
+Releases are handled automatically by the continuous integration and deployment system (Travis CI). A release will be performed for every annotated Git tag that is pushed to the main repository.
-Here are some important notes on creating a release:
+Here are a couple of observations on the release process:
- During a release, only readily available libraries in `lib_native` are packaged into the fat jar, no local native compilation is performed. The rationale behind this is that while native libraries rarely change, they are still tied to the version of libc of the compiling system. Since the releases are mostly done on a development machine (cutting-edge OS), compiling native libraries locally could break compatibility with older systems.
-- Currently, the release script does not handle uploading the native libraries archive (don't confuse this with the fat jar, which is uploaded). If creating a release that changed the native libraries or added support for more platforms, creating and uploading a new native archive must be done manually.
-
-- Don't forget to update the website after creating a new release:
+- The website is not automatically updated. After creating a new release:
- Run `sbt makeSite` to generate documentation in `target/site/`
- Checkout GitHub Pages branch `git checkout gh-pages`
diff --git a/documentation/3.0/manual.md b/documentation/3.0/manual.md
index f6fb6ff..3cc5545 100644
--- a/documentation/3.0/manual.md
+++ b/documentation/3.0/manual.md
@@ -10,7 +10,7 @@ title: User Guide
Flow uses sbt as build system. To get started, include a dependency to flow in your project:
~~~scala
-libraryDependencies += "ch.jodersky" %% "flow-core" % "3.0.2"
+libraryDependencies += "ch.jodersky" %% "flow-core" % "3.0.4"
~~~
Next, you need to include flow's native library that supports communication for serial devices.
@@ -28,7 +28,7 @@ It is recommended that you use the first option for testing purposes or end-user
In case your kernel/architecture combination is present in the "supported platforms" table in the [downloads section]({{site.url}}/downloads/), add a second dependency to your project:
~~~scala
-libraryDependencies += "ch.jodersky" % "flow-native" % "3.0.2" % "runtime"
+libraryDependencies += "ch.jodersky" % "flow-native" % "3.0.4" % "runtime"
~~~
This will add a jar to your classpath containing native libraries for various platforms. At run-time, the correct library for the current platform is selected, extracted and loaded. This solution enables running applications seamlessly, as if they were pure JVM applications.
@@ -49,7 +49,7 @@ Then, for every end-user application that relies on flow, manually add the nativ
---
# Communication Protocol
-The following is a general guide on the usage of flow. If you prefer a complete example, check out the code contained in the [flow-samples](https://github.com/jodersky/flow/tree/v3.0.2/flow-samples) directory.
+The following is a general guide on the usage of flow. If you prefer a complete example, check out the code contained in the [flow-samples](https://github.com/jodersky/flow/tree/v3.0.4/flow-samples) directory.
Flow's API follows that of an actor based system, where each actor is assigned specific functions involved in serial communication. The two main actor types are:
@@ -186,7 +186,7 @@ Note that the manager has a deathwatch on every subscribed client. Hence, should
Flow provides support for Akka streams and thus can be interfaced with reactive-streams. Support is implemented in a separate module, which needs to be added as a library dependency:
~~~scala
-libraryDependencies += "ch.jodersky" %% "flow-stream" % "3.0.2"
+libraryDependencies += "ch.jodersky" %% "flow-stream" % "3.0.4"
~~~
The main entry point for serial streaming is `ch.jodersky.flow.stream.Serial`. It's API is also well documented and should serve as the starting point when searching documentation on serial streaming.