Skip to content
Pipelines for Interactive Environments
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gradlew/wrapper
api.test
api
example
fs.api
fs.java
lang.runtime
lang
runtime.test
runtime
share.coroutine
store.lmdb
taskdefs.guice
.gitignore
Jenkinsfile
LICENSE
NOTICE
README.md
build.gradle.kts
gradlew
gradlew.bat
settings.gradle.kts

README.md

GitHub license

PIE: Pipelines for Interactive Environments

PIE is a DSL, API, and runtime for developing interactive software development pipelines and incremental build scripts.

Copyright and License

Copyright © 2018-2019 Delft University of Technology

The code and files in this project are licensed under the Apache License, Version 2.0. You may use the files in this project in compliance with the license.

Questions and Issues

If you have a question, enhancement, feature request, or bug report, please search the issue tracker for a solution or workaround, or create a new issue.

User's guide

Installation

PIE is deployed as a set of Maven artifacts, which you can consume with Maven or Gradle. For example, to depend on the runtime to build and execute pipelines, add the following Gradle dependency to your build.gradle file:

implementation 'org.metaborg:pie.runtime:0.2.0'

or add the following to your Maven pom.xml file:

<dependency>
    <groupId>org.metaborg</groupId>
    <artifactId>pie.runtime</artifactId>
    <version>0.2.0</version>
</dependency>

Components

PIE consists of several components:

  • API: The PIE API for developing reusable interactive pipelines or incremental build scripts (artifact ID: pie.api)
  • Runtime: The PIE runtime for incrementally executing pipelines developed with the API (artifact ID: pie.runtime)
    • LMDB storage support: Storage/persistence support for the runtime using the LMDB embedded database (artifact ID: pie.store.lmdb)
  • Guice support for task definitions: Guice dependency injection support for task definitions (artifact ID: pie.taskdefs.guice)
  • DSL: The PIE DSL for concisely writing pipelines (org.metaborg:pie.lang)

Developer's guide

Building

As prerequisites for building PIE, you need a Java Development Kit (JDK) of version 8 or higher. To build PIE, run the Gradle wrapper as follows in the root directory of this repository:

./gradlew buildAll

Development

PIE can developed by importing this repository into IntelliJ IDEA or Eclipse as Gradle projects. Alternatively, any code editor in conjunction with local builds described above should work.

Continuous integration

PIE is automatically built, tested, and published on our buildfarm, configured in the Jenkinsfile. It uses the gradlePipeline shared pipeline from the metaborg.jenkins.pipeline shared pipeline library.

Publishing

To publish PIE, run ./gradlew publishAll.

To publish a new release version of PIE, first Git commit your changes and tag the commit in the form of release-<version>, e.g., release-0.3.0, and then run ./gradlew publishAll.

  • Run ./gradlew publishAll.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.