Skip to main content

A modern project-as-code specification, build, testing, and report generation library.

Project description

Navy Build

A modern project-as-code specification, build, testing, and report generation library.

nbuild is a library providing the following capabilities:

  • Describe a software project from artifacts (source or binary redistributables) to artifacts (usually programs as .exe files)
  • Using these descriptions of the project test and report the following:
    • Correctness
    • Completeness
  • Finally using the software project description and the tests, produce a formal documentation describing how to use each tested capability.

This directory holds the nbuild/ source directory as well as an examples/ directory showing how one might use nbuild to generate reports about projects.

Example Processes

Process 01

  1. A tester uses the nbuild library to write review_proj01.py, which is a formal description of the project deliverables and what the deliverables must do.

  2. A contractor submits a project as source code on a USB drive. The code resides in a folder "proj01".

  3. The tester runs python review_proj01.py and their browser opens to the following report:

screenshots/proj01-report01.jpg

Process 02

  1. A tester uses the nbuild library to write review_nasa_worldwind.py, which is a formal description of a public mapping library written by NASA.

  2. The tester runs python review_nasa_worldwind.py and their browser opens to the following report:

screenshots/nasa_worldwind-report01.jpg

Process 03

  1. A tester uses the nbuild library to describe a physical process for testing a new artillery loading mechanism in review_artillery_loading.py. This requires a person to perform the tests and nbuild will issue instructions textually. The person doing the test will respond to simple "yes or no" questions.

  2. The tester runs python review_artillery_loading.py and follows the instructions given. When completed a report like the following will be generated:

screenshots/artillery_loading-report01.jpg

Plans

  • Self-service HTTP server (upload .exe files, get reports back)
  • Workflow flowchart generation from project definition
  • Record runtime
  • Predict runtime
  • Support Maven builds (java)
  • Support Gradle builds (java)
  • Support DotNet builds (C#)
  • Support partial automation (eg move seamlessly from an automated step to a manual step + vice versa)

Project Hygiene

You will need pylint installed to run code analysis below.

You will need pylint installed to run code analysis below.

One-liners for dependencies:

python -m pip install --user pylint
python -m pip install --user pdoc3

Code Quality

Run python do_quality_checks.py to check the nbuild library code quality.

Pass your favorite editor (subl3 for Sublime 3, idea for the IntelliJ IDE) to the command to have it open at the first line that failed the linter:

python do_quality_checks.py
# or if you have subl3 installed:
python do_quality_checks.py edit-with subl3
# for IntelliJ customers:
python do_quality_checks.py edit-with idea.exe

Code Documentation

The code is annotated with docstrings, so most python documentation generators will produce something useful. We use pdoc for our own copies of documentation, which places .html files under a ./html/ directory.

python -m pdoc --html nbuild
# one-liner to open ./html/nbuild/index.html for documentation
python -m pdoc --html --force nbuild && xdg-open ./html/nbuild/index.html

Code license

See license.txt for details, it contains a copy of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nbuild-0.0.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

nbuild-0.0.1-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file nbuild-0.0.1.tar.gz.

File metadata

  • Download URL: nbuild-0.0.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for nbuild-0.0.1.tar.gz
Algorithm Hash digest
SHA256 907016ed04cbc2ee4e713700ecb7485ab411b0996099e8e66a7aea0d9b58eb85
MD5 5fd14894cf6440c1b8f7c5c23be6912a
BLAKE2b-256 4022323ba4b73908c6144b1f484388a07de7a7990d23c497292e7ed500cab85d

See more details on using hashes here.

File details

Details for the file nbuild-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: nbuild-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for nbuild-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8d6b42a27417bf9d02970624f70f905e562ec3753bc29528cd402807d33be3f
MD5 c68180877b34e166ae8ca56685595736
BLAKE2b-256 df1f2c47f081af5300833bc7b43027d83b7b66bfcdf012e1932f42ab5061fd88

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page