Giter Club home page Giter Club logo

playframework's Introduction

Gradle Play Plugin Build Status Latest release

Documentation

Development

Minimum requirements

To engage in the development of the plugin, follow the minimum requirements shown in the table below.

Tool Minimum Version

JDK

Oracle JDK or OpenJDK 8.x, anything higher won’t work with Scala 2.11

IDE

IntelliJ 2018.2 or higher

Executing the build

The plugin follows the standard conventions of a Java project modeled with Gradle. Furthermore, the project defines a task for running integration tests. To compile the code, execute all tests and build the plugin’s artifact, run the following command.

Linux & MacOSX

./gradlew build

Windows

gradlew.bat build

Working in the IDE

Importing the project into IntelliJ is straight forward. From the menu select File > Open…​ > Open as Project and point it to the build.gradle.kts file. In the following pop-up window, ensure that the default Gradle Wrapper is selected and "Create separate module per source set" is checked.

Release

The project currently doesn’t define a release process that can be triggered by running a single task. Following the process below.

  1. Update the release notes and release date in changelog file.

  2. Create a release on GitHub with the appropriate tag.

  3. Build and publish the Javadocs and the user guide by running the task gitPublishPush.

  4. Check that the https://github.com/gradle/playframework/actions?query=workflow%3A%22Create+Release%22 GitHub action is successful.

Generating documentation

The markup language for the user guide of this plugin is AsciiDoc. Documentation sources sit in the directory src/docs. To generate the HTML version of the plugin user guide, run the task asciidoctor. The generated HTML will be available in the directory build/asciidoc/html5.

Publishing documentation to GitHub Pages

Documentation (user guide & Javadocs) is hosted on GitHub Pages. To publish the documentation to GitHub Pages, execute the task gitPublishPush. Make sure to provide the required GitHub token by passing the system property -Dorg.ajoberstar.grgit.auth.username=$GH_TOKEN.

playframework's People

Contributors

artbristol avatar big-guy avatar bmuschko avatar cantsingh avatar clemstoquart avatar cmsr avatar cstroe avatar eskatos avatar fushar avatar gabizou avatar iaco86 avatar jjohannes avatar jlleitschuh avatar jospehchiu avatar jprinet avatar marracuene avatar novokrest avatar paulfridrick avatar pioterj avatar rieske avatar sineaggi avatar tresat avatar wolfs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

playframework's Issues

Set up build infrastructure for plugin

  • Build code uses Kotlin DSL
  • Integration test source set and task
  • Integration test fixture live in a separate source set
  • Declare necessary dependencies
  • Enable build scan

Implement multi-version integration testing

  • A selection of existing integration tests can be run with multiple versions of Play
  • TestKit does not have built-in support for it
  • Implement a JUnit rule to allow running tests multiple times

Note: We do not know yet what the supported versions of Play should be. This depends on customers of the plugin giving us the information.

Avoid use of `afterEvaluate`

This can wait until later, but we should be judicious in the use of afterEvaluate. This has been good so far.

Play IDE plugin: Write plugin implementation class with current model

  • Convert existing logic from software model to current model
  • Only supports IntelliJ IDEA
  • Mapping of configurations to IDEA scopes
  • Mapping of source/target byte code version
  • Mapping of source directories

Note: We should see IntelliJ can just import a Play project without the needs to implement this plugin

Plugin suite can be published to Gradle Plugin Portal

  • Write publishing code in build script using the Kotlin DSL
  • An initial version is available on the Gradle plugin portal
  • Individual plugins are mapped on the Gradle plugin portal
  • New versions can be published to Gradle plugin portal

Play application plugin: Tool chain should live in external plugin

  • Corresponding tool chain migrated to external plugin (this could potentially involve using the worker API instead)
  • This will involve the deployment API
  • Simplify implementation as needed
  • Custom task type in external plugin does not call off to Gradle core anymore

Externalize existing documentation page

  • Externalize source code snippets
  • Import source code snippets in docs
  • Add ability to generate HTML from it via Asciidoctor
  • Change documentation to reflect different plugin behavior

Set up CI for project on Travis CI

  • Provide a Travis CI configuration file
  • Enable project on Travis CI
  • The plugin source code can be compiled, all tests can be run
  • Add build badge to README file of project

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.