Periph 2.0.0 released

New version of Golang standalone library with breaking changes available now
29 August 2017   443

New major version 2.0.0 of Periph had been released.

What's Periph?

periph.io/x/periph is a standalone library with no external dependency to interface with low-level board facilities exposed by the OS or leveraged against OS’ will. It can be viewed as a lower level layer than Gobot, and yes we’re discussing to collaborate in the future!

Features:

  • No external dependencies
  • No C dependency, doesn’t use cgo
  • Explicit initialization: know what hardware is detected and what is not
  • Interfaces:
    • GPIO: both memory mapped registers and edge detection
    • I²C
    • SPI
    • 1-wire
  • Devices:
    • Output: apa102, ssd1306, tm1637
    • Sensing: bme280, bmp180, ds18b20, ir, lepton
    • Interfacing: ds248x
  • Continuously tested via gohci on:
    • BeagleBone
    • C.H.I.P.
    • ODROID-C1+
    • Raspberry Pi
    • Windows 10 VM
  • SemVer compatibility guarantee
    • Major version change (v1.0 to v2.0) may introduce breaking changes.
    • Minor version change (v1.1 to v1.2) will be backward compatible.
    • master may contain breaking changes, use dep.

What's new in version 2.0.0?

Main changes:

As part of periph’s compatibility guarantee, breaking changes can only occur on major version bump.

  • conn/gpio/gpioreg: Removed ByNumber().
  • conn/spi: Renamed Port.DevParams() to Connect() to better convey that a connected Port becomes a Conn.
  • devices: Device doesn’t embed fmt.Stringer anymore. Display and Environmental now embed Device.
  • devices/bme280: renamed to devices/bmxx80, now supporting all three of BMP180/BME280/BMP280.
  • host/pmem: Renamed Mem.Struct() to AsPOD() and made it support array and slices.

New features:

This release brings a whole set of new features:

  • conn: Added documentation about the concepts: Bus, Port and Conn.
  • conn/pin/pinreg: when mapping a physical board header via pinreg.Register(), any pin.Pin that also implementsgpio.PinIO are now automatically aliased as <board>_<pin number> in the GPIO registry conn/gpio/gpioreg.
  • devices: Added Environmental.SenseContinuous().
  • cmd/ssd1306 and devices/ssd1306: Removed dependency on golang.org/x/image/… in both the command and in the device driver’s tests, making periph a library that depends only on pure stdlib, even for the executables in cmd/.
  • Added travis check to never allow a non-stdlib dependency ever again.
  • Various minor improvements: documentation, typos, better golint and go vet compliance, code coverage increase.

Learn more at official website.

Brigade launched

Event-driven scripting tool for Kubernetes released by Microsoft
31 October 2017   442

Microsoft has unveiled its new Open Source development for the needs of DevOps, a Brigade utility designed to run scripts that are executed on a Kubernetes cluster on an event.

The Brigade utility was created by former employees of Deis, a company that Microsoft bought earlier this year. Deis was working on Kubernetes, Helm and Draft. The purpose of Brigade is to "script simple and complex workflows using JavaScript." The solution allows to associate containers by running them sequentially or in parallel and invoking scripts based on time, events in GitHub (also supported by "DockerHub and other popular web services"), push operations in Docker or other triggers. Readme of the project describes it as "a tool for creating pipelines for Kubernetes".

Brigade architecture
Brigade architecture 

Brigade is written in Go and TypeScript / JavaScript, it functions as a service inside Kubernetes. The job (task) in Brigade is a JavaScript script that is interpreted by the product service, which leads to the creation of the necessary resources in Kubernetes. Next, Brigade expects events and performs the corresponding task trigger. It is assumed that the new solution is well suited for the tasks of continuous integration and delivery of applications (CI / CD), tk. simplifies automated testing, assembly of artifacts and releases, management of software deployment.

Check GitHub for more information.