Quakeworx App Adoption Guidelines

  • This document provides guidelines for adoption of new apps in Quakeworx, including (i) the minimum requirements for software to be hosted in Quakeworx, and (ii) the terms a submitter must agree to for the software to be hosted on Quakeworx.

Roles

  • The role of the “app-owner” will be to liaise with the Quakeworx team to design the app tailored to the software. Additionally, the app-owner will be listed as a contact person for users of this Quakeworx App.
  • The role of the “code-maintainer” will be to install and test the software on the app target platform.  The code-maintainer will be responsible for bug-fixes, patches, versioning and releases of the software being used within the Quakework App. The code-maintainer will also be listed as a contact person for users of this Quakeworx App.

 

All Apps are required to have both an “App-owner” and a “code-maintainer”.

App Adoption Process

  1. Verify your software meets the requirements described in “Software Requirements”.
  2. Submit a formal request for your software to be added. (see “Submitting a Request”).
  3. The Quakeworx team will review the request.
  4. If approved:
    1. The app-owner and code-maintainer work with the Quakeworx team to build the Quakeworx App.
    2. The app-owner and code-maintainer agree to the terms in the App-Owner and Code-Maintainer Agreement.

Software Requirements

Software considered for Quakeworx must:

  • Be hosted in a publicly accessible repository (e,g Git, via GitHub, GitLib, BitBucket).
  • State the open-source license used by the software distribution.
  • Provide documentation including:
    • Software dependencies required by the software
    • Installation procedure
  • Include a minimal working example with expected output for verification.

Submitting a Request

Send a request to software@scec.org including:

  • One-line summary of what the software does (for the app tagline).
  • Short description of what the software is and how it works (for the app description).
  • URL of the code repository.
  • Relevant publications:
    • describing the software or methodology, and/or
    • using the software. 
  • Authors of the software to be credited.
  • The name and contact information of “app-owner” (which may be someone other than yourself).
  • The name and contact information of “code-maintainer” (which may be someone other than yourself).
  • Target compute platform.
  • Whether the code is serial or parallel.  If parallel, specify the type (GPU, MPI, OpenMP, etc.). 
  • Typical resource usage: memory, runtime, number of compute nodes, volume of output (GB).

App-owner and code-maintainer agreement

In the event that your request to have your software (referred to as “softwareX”) hosted on the Quakeworx OneSciencePlace gateway, the app-owner and code-maintainer agree to the following terms:

  1. To work with, liaise, coordinate and interact with the Quakework team in accordance with the “Quakework Code of Conduct” (see section below) to (i) create a Quakework App for “softwareX”, and (ii) to maintain and enhance their Quakework App as required.
  2. To retain their roles as app-owner and code-maintainer from the day of approval to the end-date of the Quakework project (DATE GOES HERE). In the event that either the app-owner or code-maintainer can no longer fulfill their roles, a replacement must be appointed by the individual or group who requested the App be hosted on Quakeworx. In the event that no replacement for an app-owner or code-maintainer is identified for “softwareX”, the Quakeworx App will be disabled or  archived from the Quakeworx OneSciencePlace gateway.
  3. To participate in quarterly Quakeworx App maintainer meetings attended by all owners and maintainers of Quakeworx App’s, as well as the Quakeworx development team.
  4. To respond to users of your App in a timely manner, and in accordance with the “Quakeworx Code of Conduct”.
  5. The code-maintainer will be responsible for any applying bug-fixes, patches, and versioning / new releases of “softwareX” required by their Quakework App.
  6. The Quakeworx team assumes no responsibility for the correctness of “softwareX”, or for the maintenance of “softwareX”.

What the Quakeworx Team Commits To

The Quakeworx team will, for the duration of the project:

  • Integrate the contributed software into the Quakeworx environment following standard gateway practices.
  • Provide the technical framework needed to run the software as a Quakeworx App (UI, job submission, data handling, logs, monitoring).
  • Offer guidance on compilation/containerization, deployment, and platform compatibility as needed.
  • Maintain the gateway infrastructure, including compute access, user management, and monitoring.
  • Provide support for diagnosing gateway environment issues (not the scientific correctness of the software).