Commit 3e56f273 authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

docs: Update ROADMAP and CONTRIBUTING

parent 5ff86a5b
Loading
Loading
Loading
Loading
Loading
+27 −3
Original line number Diff line number Diff line
@@ -12,6 +12,10 @@
- Ensure Docker container is running, then chose one of more of the following:
    - Open a web browser <sup>[2](#2)</sup> and navigate to `https://localhost:1337` (password = `password`)
    - Open local install of VS Code and connect to container using [remote development extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)
- Install [Tarpaulin](https://github.com/xd009642/tarpaulin) for generating code coverage with
    ```shell
    cargo install cargo-tarpaulin
    ```
- Development involves mulitple [make](./Makefile) and cargo tasks:
    - `cargo run` - Execute code
        - `cargo run -- help` - Print PIPE CLI help
@@ -20,15 +24,16 @@
    - `make lint` -  Format and lint code
    - `make test` - Run tests and generate code coverage
    - `make doc` - Generate documentation (see https://pipe.ornl.gov)
    - ***WIP*** `make release` - Build release binaries
    - `make build` - Build release binaries
- Make a git branch, push changes to it, open a merge request, resolve issues

## Cross-platform testing
- Ensure your environment has either [Docker](https://www.docker.com/products/docker-desktop/) or [Podman](https://podman.io/) installed and running
- Running cross-platform tests requires using [Cross](https://github.com/cross-rs/cross). Install Cross with `cargo-binstall`<sup>[3](#3)</sup>
- Running cross-platform tests requires using [Cross](https://github.com/cross-rs/cross). Install Cross with
    ```shell
    cargo binstall cross
    cargo install cross --git https://github.com/cross-rs/cross
    ```
    or use `cargo-binstall`<sup>[3](#3)</sup>.
- Run tests for a given target triple<sup>[4](#4)</sup> with
    ```shell
    cross test --target <target triple>
@@ -38,6 +43,21 @@
    make test-cross
    ```

## Project Structure
```mermaid
graph LR
    a[PIPE] --> b[pipe-cli/]
    a --> c[pipe-lib/]
    a --> d[pipe-py/]
    b --> e[CLI application]
    c --> f[Rust crate]
    d --> g[Python</br>package]
    e --> h[commands]
    e --> i[reporters]
    f --> j[pipe-cli</br>utility functions]
    g --> k[Module</br>utility functions]
```

## Coding Guidelines
- Logging
    - This project uses the [tracing](https://docs.rs/tracing/latest/tracing/) crate for logging
@@ -80,6 +100,10 @@
```shell
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
```
> Install `cross` with
```shell
cargo binstall cross
```
> See [cargo-binstall README](https://github.com/cargo-bins/cargo-binstall?tab=readme-ov-file#installation) for more options

[4]
+5 −1
Original line number Diff line number Diff line
@@ -54,6 +54,9 @@
  - [X] Provide `--offline` flag to disable reachability check
  - [ ] Filter remote module URLs against white list
  - [ ] Check remote URLs are valid and reachable
- [ ] User experience enhancements
  - [ ] Progress indication during long running workflows
  - [ ] Provide `--env` option to specify custom location of `.env` file
- [ ] Multi-platform release binaries published to GitLab repository
  - [X] Linux ([tier 1](https://code.ornl.gov/groups/GSHS/common/pipe/-/wikis/PIPE-Standards/Tiers-of-Support))
  - [ ] Mac ([tier 2](https://code.ornl.gov/groups/GSHS/common/pipe/-/wikis/PIPE-Standards/Tiers-of-Support))
@@ -61,7 +64,8 @@
  - [ ] Web Browser (WebAssembly)
- [ ] MVP<sup>[1](#1)</sup> (+binary module support)
    - [ ] Verify binary with checksum hash (provide `--skip-verify-checksum` flag)
    - [ ] Support local binary module
    - [ ] Handle binary execution when not executable (`./cmd` vs `cmd`)
    - [X] Support local binary module
    - [ ] Support remote binary module
- [ ] Abstract "virtual environment" support (to include more than just `Conda`)
    - [ ] Add Docker (and Podman) environment