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
-
A tester uses the
nbuild
library to writereview_proj01.py
, which is a formal description of the project deliverables and what the deliverables must do. -
A contractor submits a project as source code on a USB drive. The code resides in a folder "proj01".
-
The tester runs
python review_proj01.py
and their browser opens to the following report:
Process 02
-
A tester uses the
nbuild
library to writereview_nasa_worldwind.py
, which is a formal description of a public mapping library written by NASA. -
The tester runs
python review_nasa_worldwind.py
and their browser opens to the following report:
Process 03
-
A tester uses the
nbuild
library to describe a physical process for testing a new artillery loading mechanism inreview_artillery_loading.py
. This requires a person to perform the tests andnbuild
will issue instructions textually. The person doing the test will respond to simple "yes or no" questions. -
The tester runs
python review_artillery_loading.py
and follows the instructions given. When completed a report like the following will be generated:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 907016ed04cbc2ee4e713700ecb7485ab411b0996099e8e66a7aea0d9b58eb85 |
|
MD5 | 5fd14894cf6440c1b8f7c5c23be6912a |
|
BLAKE2b-256 | 4022323ba4b73908c6144b1f484388a07de7a7990d23c497292e7ed500cab85d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8d6b42a27417bf9d02970624f70f905e562ec3753bc29528cd402807d33be3f |
|
MD5 | c68180877b34e166ae8ca56685595736 |
|
BLAKE2b-256 | df1f2c47f081af5300833bc7b43027d83b7b66bfcdf012e1932f42ab5061fd88 |