-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
193 changed files
with
11,042 additions
and
6,358 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,3 +18,4 @@ lbarbMITRE | |
cminiter | ||
pscemama-mitre | ||
alexb1200 | ||
jsoref |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
|
||
If you have not already, please review [CONTRIBUTING.md](CONTRIBUTING.md) for more complete information on expectations for contributions. | ||
|
||
## Developer quickstart | ||
## Developer Set-up | ||
|
||
### Setting up the Python virtual environment | ||
|
||
|
@@ -17,12 +17,12 @@ Ensure that you have Python 3.11 installed and that it is available in your PATH | |
| linux-arm64-py3.11-requirements-dev.txt | Linux | arm64 | ❌ | ❌ | | ||
| linux-arm64-py3.11-requirements-dev-tensorflow.txt | Linux | arm64 | ✅ | ❌ | | ||
| linux-arm64-py3.11-requirements-dev-pytorch.txt | Linux | arm64 | ❌ | ✅ | | ||
| macos-amd64-py3.11-requirements-dev.txt | MacOS | x86-64 | ❌ | ❌ | | ||
| macos-amd64-py3.11-requirements-dev-tensorflow.txt | MacOS | x86-64 | ✅ | ❌ | | ||
| macos-amd64-py3.11-requirements-dev-pytorch.txt | MacOS | x86-64 | ❌ | ✅ | | ||
| macos-arm64-py3.11-requirements-dev.txt | MacOS | arm64 | ❌ | ❌ | | ||
| macos-arm64-py3.11-requirements-dev-tensorflow.txt | MacOS | arm64 | ✅ | ❌ | | ||
| macos-arm64-py3.11-requirements-dev-pytorch.txt | MacOS | arm64 | ❌ | ✅ | | ||
| macos-amd64-py3.11-requirements-dev.txt | macOS | x86-64 | ❌ | ❌ | | ||
| macos-amd64-py3.11-requirements-dev-tensorflow.txt | macOS | x86-64 | ✅ | ❌ | | ||
| macos-amd64-py3.11-requirements-dev-pytorch.txt | macOS | x86-64 | ❌ | ✅ | | ||
| macos-arm64-py3.11-requirements-dev.txt | macOS | arm64 | ❌ | ❌ | | ||
| macos-arm64-py3.11-requirements-dev-tensorflow.txt | macOS | arm64 | ✅ | ❌ | | ||
| macos-arm64-py3.11-requirements-dev-pytorch.txt | macOS | arm64 | ❌ | ✅ | | ||
| win-amd64-py3.11-requirements-dev.txt | Windows | x86-64 | ❌ | ❌ | | ||
| win-amd64-py3.11-requirements-dev-tensorflow.txt | Windows | x86-64 | ✅ | ❌ | | ||
| win-amd64-py3.11-requirements-dev-pytorch.txt | Windows | x86-64 | ❌ | ✅ | | ||
|
@@ -34,7 +34,7 @@ python -m venv .venv | |
``` | ||
|
||
Activate the virtual environment after creating it. | ||
To activate it on MacOS/Linux: | ||
To activate it on macOS/Linux: | ||
|
||
```sh | ||
source .venv/bin/activate | ||
|
@@ -53,7 +53,7 @@ python -m pip install --upgrade pip pip-tools | |
``` | ||
|
||
Finally, use `pip-sync` to install the dependencies in your chosen requirements file and install `dioptra` in development mode. | ||
On MacOS/Linux: | ||
On macOS/Linux: | ||
|
||
```sh | ||
# Replace "linux-amd64-py3.11-requirements-dev.txt" with your chosen file | ||
|
@@ -70,9 +70,69 @@ pip-sync requirements\win-amd64-py3.11-requirements-dev.txt | |
If the requirements file you used is updated, or if you want to switch to another requirements file (you need access to the Tensorflow library, for example), just run `pip-sync` again using the appropriate filename. | ||
It will install, upgrade, and uninstall all packages accordingly and ensure that you have a consistent environment. | ||
|
||
### Frontend development setup | ||
|
||
For instructions on how to prepare the frontend development environment, [see the src/frontend/README.md file](src/frontend/README.md) | ||
### Local Development setup (without containers) | ||
- Clone the repository at https://github.com/usnistgov/dioptra: | ||
``` | ||
git clone [email protected]:usnistgov/dioptra.git ~/dioptra/dev | ||
``` | ||
or | ||
``` | ||
git clone https://github.com/usnistgov/dioptra.git ~/dioptra/dev | ||
``` | ||
- `cd ~dioptra/dev` | ||
- `git checkout dev` | ||
- [Install redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) | ||
- Create a work directory for files `mkdir -p ~/dioptra/deployments/dev` | ||
- [Create a python virtual environment](#setting-up-the-python-virtual-environment) | ||
|
||
- The following describes commands to execute in four different terminal windows: | ||
1. Flask Terminal | ||
- Environment variables that must be set for flask: | ||
``` | ||
DIOPTRA_RESTAPI_DEV_DATABASE_URI="sqlite:////home/<username>/dioptra/deployments/dev/dioptra-dev.db" | ||
DIOPTRA_RESTAPI_ENV=dev | ||
DIOPTRA_RESTAPI_VERSION=v1 | ||
``` | ||
N.B.: replace <username> with your username. On some systems the home path may also be different. Verify the expansion of '~' with the `pwd` command while in the appropriate directory. | ||
- Activate the python environment set-up in prior steps | ||
- `dioptra-db autoupgrade` | ||
- `flask run` | ||
2. Frontend UI Terminal | ||
- Commands to get a Frontend running: | ||
```bash | ||
cd src/fronted | ||
npm install | ||
npm run dev | ||
``` | ||
3. Redis Terminal | ||
- `redis-server` | ||
4. Dioptra Worker | ||
- Starting a Dioptra Worker requires the following environment variables: | ||
``` | ||
DIOPTRA_WORKER_USERNAME="dioptra-worker" # This must be a registered user in the Dioptra app | ||
DIOPTRA_WORKER_PASSWORD="password" # Must match the username's password | ||
DIOPTRA_API="http://localhost:5000" # This is the default API location when you run `flask run` | ||
RQ_REDIS_URI="redis://localhost:6379/0" # This is the default URI when you run `redis-server` | ||
MLFLOW_S3_ENDPOINT_URL="http://localhost:35000" # If you're running a MLflow Tracking server, update this to point at it. Otherwise, this is a placeholder. | ||
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES # Macs only, needed to make the RQ worker (i.e. the Dioptra Worker) work | ||
``` | ||
- Activate the python environment set-up in prior steps (e.g. `source .venv/bin/activate`) | ||
- With the prior environment variables set then execute the following commands: | ||
```bash | ||
mkdir -p ~/dioptra/deployments/dev/workdir/ | ||
cd ~/dioptra/deployments/dev/workdir/ | ||
dioptra-worker-v1 'Tensorflow CPU' # Assumes 'Tensorflow CPU' is a registered Queue name | ||
``` | ||
- Frontend app is available by default at http://localhost:5173 (the frontend terminal windows should also indicate the URL to use) | ||
- Create Dioptra worker in the Frontend UI or through API. curl command for interacting with API (assuming you have the environment variables in Step iv set) is: | ||
``` | ||
curl http://localhost:5000/api/v1/users/ -X POST --data-raw "{\"username\": \"$DIOPTRA_WORKER_USERNAME\", \"email\": \"dioptra-worker@localhost\", \"password\": \"$DIOPTRA_WORKER_PASSWORD\", \"confirmPassword\": \"$DIOPTRA_WORKER_PASSWORD\"}" | ||
``` | ||
- Create 'Tensorflow CPU' Queue -- this needs to agree with the queue name used in Step iv. | ||
### Building the documentation | ||
|
@@ -133,7 +193,7 @@ make code-check | |
|
||
This project has a [commit style guide](./COMMIT_STYLE_GUIDE.md) that is enforced using the `gitlint` tool. | ||
Developers are expected to run `gitlint` and validate their commit message before opening a Pull Request. | ||
After commiting your contribution, activate your virtual environment if you haven't already and run: | ||
After committing your contribution, activate your virtual environment if you haven't already and run: | ||
|
||
```sh | ||
python -m tox run -e gitlint | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.