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
.exefiles) - 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
nbuildlibrary 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.pyand their browser opens to the following report:
Process 02
-
A tester uses the
nbuildlibrary 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.pyand their browser opens to the following report:
Process 03
-
A tester uses the
nbuildlibrary to describe a physical process for testing a new artillery loading mechanism inreview_artillery_loading.py. This requires a person to perform the tests andnbuildwill issue instructions textually. The person doing the test will respond to simple "yes or no" questions. -
The tester runs
python review_artillery_loading.pyand follows the instructions given. When completed a report like the following will be generated:
Plans
- Self-service HTTP server (upload
.exefiles, 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|