-
Notifications
You must be signed in to change notification settings - Fork 18
Add Blazor WebAssembly example with SystemLink API authentication #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
192 commits
Select commit
Hold shift + click to select a range
a86a545
Update README title for BYU team branch
amur-bashirov c69f6ff
created React Demo
amur-bashirov e41f690
Amur's React + Vite default app
amur-bashirov 125eae9
Rename React app folder
amur-bashirov 6872ffb
Created folders to begin developing
Samuelsotogit d7c15cb
Merge branch 'BYU-Development' of https://github.com/Samuelsotogit/sy…
Samuelsotogit cd99b03
put react empty app into web-apps folder
amur-bashirov dd5b89e
Update Nimble package
reouct 0022308
Remove default React buttons
reouct f62b9bc
Added NI icon to the page
amur-bashirov 684e857
added buttons colors
amur-bashirov 91d5c64
Co-authored-by: Bowen Liu <reouct@users.noreply.github.com>
amur-bashirov 0a24153
new path and css
amur-bashirov 85d83b1
put a placeholder for config.js
amur-bashirov b1de94a
changed it to the typescript
amur-bashirov df1b8ce
put a placeholder for config
amur-bashirov 71bb8d2
unable to use secrets not in pipline, reversed the proccess back
amur-bashirov fa85069
pit config.ts into gitignore
amur-bashirov 51d0af9
tried to put it one more time
amur-bashirov 5a10fcc
changed config back
amur-bashirov dff043c
Stop tracking config.ts
amur-bashirov 9bc4478
push to delete config.ts
amur-bashirov 6b4de7c
deleted dem_config
amur-bashirov 9626c3b
finished creating demo config
amur-bashirov 07aca10
finished config file and demo config file
amur-bashirov 3fc1884
defined div for api call
amur-bashirov acef4c6
finished css for button and api
amur-bashirov 3084d50
defined first div and title for the example css
amur-bashirov a2c4e9d
Set Up README.md on top and lower levels within the repo
Samuelsotogit 5026d57
Merge branch 'BYU-Development' of https://github.com/Samuelsotogit/sy…
Samuelsotogit a2b111f
sussesfuly called api call
amur-bashirov 805acec
Update README on how to run the app locally.
reouct d4c1875
fixed most of the issues with main description for now
amur-bashirov e5da9fa
Merge branch 'Bowen-Amur-Design' of https://github.com/Samuelsotogit/…
amur-bashirov 4edeaad
CSS cleanup.
reouct 96316c1
Update on displaying the response on the screen
reouct 0824d32
Starting Blazor Work
Hecktomb200 b01f438
empty new blazor app
amur-bashirov 00f5936
added html
amur-bashirov 0e96f9b
renamed service to serviceProxy)
rockyRaccoon13 ef0e56f
dotnet changes
Samuelsotogit 6027eee
added gitignore
amur-bashirov 4d0c12f
Merge branch 'BYU-Development' into Bowen-Amur-Logan-Design
amur-bashirov ed6f6f1
ignore config (sensitive data) and node_modules (bloat)
rockyRaccoon13 cd37f3d
ignore node_modules, dist/, *.nipkg
rockyRaccoon13 614574b
fix(build) vite build now uses relative paths
rockyRaccoon13 29d2a33
fixed proxy setup. Add vite env files for dev and prod
rockyRaccoon13 7506bfa
update(README). proxy config and SL-CLI deployment instructions
rockyRaccoon13 c1bd8e7
Merge branch 'BYU-Development' into dev/benson
rockyRaccoon13 ab058fc
temp fix(proxyService) proxy works for specific endpoint and method
rockyRaccoon13 3ecb790
added notes on how dev/prod envs work
rockyRaccoon13 fe125a0
made service work for all methods and upstream paths
rockyRaccoon13 1e2a81e
Merge branch 'BYU-Development' into dev/benson
rockyRaccoon13 af1b8f5
Merge branch 'ni:main' into BYU-Development
rockyRaccoon13 b580e0c
added test
rockyRaccoon13 73453e1
updated css
amur-bashirov 53eab0a
changed the structure of the design
amur-bashirov 3da2929
imported font
amur-bashirov db4488d
Added Initial Blazor APP
Samuelsotogit a0b2bb9
Merge branch 'BYU-Development' of https://github.com/Samuelsotogit/sy…
Samuelsotogit 4b584d3
Changed file names
Samuelsotogit af084c0
added dependencies via npm
Samuelsotogit 610c690
Installed NimbleBlazor dependencies, created API component page with …
Samuelsotogit 417f71f
Add Nimble components support to Blazor app
Samuelsotogit b0ba768
Merge branch 'blazor-API-call-feature' into BYU-Development
Samuelsotogit 05adc20
fixed buttons and description css
amur-bashirov 36bebdd
init(webapp-deployment ci)
rockyRaccoon13 9ab6fc5
fixed webapp-deploy.yml to run action on change to yml
rockyRaccoon13 681689e
Add interactive API call example page
Samuelsotogit 80d3e06
figured out css for links
amur-bashirov 82ee280
fix(webapp-deploy.yml) - actions versions, app paths, secrets keys
rockyRaccoon13 30e500f
fix(webapp workflow) - add slcli to github path
rockyRaccoon13 eee214e
fix(webapp workflow) - update login to match new slcli cmd
rockyRaccoon13 94c52c2
change(webapp-deploy) add Prod prefix to published name
rockyRaccoon13 10964a7
change
rockyRaccoon13 fce4987
refactor(webb-app deploy) 1 job (instead of 2)
rockyRaccoon13 c6be905
Merge branch 'ni:main' into BYU-Development
rockyRaccoon13 cce3084
Merge branch 'ni:main' into main
rockyRaccoon13 4a2a712
added test
rockyRaccoon13 1280d33
init(webapp-deployment ci)
rockyRaccoon13 d828e1a
fixed webapp-deploy.yml to run action on change to yml
rockyRaccoon13 436c0be
fix(webapp-deploy.yml) - actions versions, app paths, secrets keys
rockyRaccoon13 140d829
fix(webapp workflow) - add slcli to github path
rockyRaccoon13 1dd7b16
fix(webapp workflow) - update login to match new slcli cmd
rockyRaccoon13 0230da8
change(webapp-deploy) add Prod prefix to published name
rockyRaccoon13 3334e6c
change
rockyRaccoon13 fce8ba1
refactor(webb-app deploy) 1 job (instead of 2)
rockyRaccoon13 df0d79d
delete(unused)
rockyRaccoon13 2de2578
setup esLint using NI rules (plus, downgraded globals to make lintin…
rockyRaccoon13 9f3ed3b
Merge branch 'BYU-Development' into dev/benson
rockyRaccoon13 88fe2f5
mod(vite.config.ts) eslint ignore(no-default-export, no-extra-dep)
rockyRaccoon13 089eb71
add lint to webapp-deploy workflow
rockyRaccoon13 02e7519
dotnet changes
Samuelsotogit b1201fd
Added Initial Blazor APP
Samuelsotogit adf8bc4
Changed file names
Samuelsotogit 883e029
Installed NimbleBlazor dependencies, created API component page with …
Samuelsotogit 3a36716
Add Nimble components support to Blazor app
Samuelsotogit 892f6c8
added test
rockyRaccoon13 858487d
init(webapp-deployment ci)
rockyRaccoon13 e4d1eb6
delete(unused)
rockyRaccoon13 0625fa0
setup esLint using NI rules (plus, downgraded globals to make lintin…
rockyRaccoon13 2b6cead
mod(vite.config.ts) eslint ignore(no-default-export, no-extra-dep)
rockyRaccoon13 c4ae11d
add lint to webapp-deploy workflow
rockyRaccoon13 71b963b
init(deployDev.sh) to automate adding webapp to SL website
rockyRaccoon13 da59ef1
Merge branch 'BYU-Development'
rockyRaccoon13 f1c33a7
addTo(webapp deployment workflow) run on angular folders
rockyRaccoon13 25eedc8
Merge branch 'BYU-Development'
rockyRaccoon13 5d00908
fix(env variable for apps dir react)
rockyRaccoon13 386de8e
Merge branch 'BYU-Development'
rockyRaccoon13 cb2fae3
changed the colors and some ui
amur-bashirov 5b1f6f0
API call now functioning for local development
Samuelsotogit 3f41680
fix(workflow) delete incorrect white space
rockyRaccoon13 569b283
Merge branch 'blazor-API-call-feature' into BYU-Development
Samuelsotogit ea2bfcf
saved fonts offline
amur-bashirov 4471f7b
Merge branch 'main' of https://github.com/Samuelsotogit/systemlink-en…
reouct bccf25c
changed all the links to open tabs
amur-bashirov c72cdcd
Merge branch 'React'
amur-bashirov 0afb87a
fix(workflow) fix typo in angular env variable
rockyRaccoon13 6e5888b
Merge branch 'devOps/CI_CD'
rockyRaccoon13 8087555
mv(serviceProxy) to Dev Tools/ApiServiceProxy
rockyRaccoon13 3aa315b
rename(amur-react-vite-app) to ApiKeyAuthApp
rockyRaccoon13 195361b
mv web_apps/** into examples/
rockyRaccoon13 9c9263e
update(workflow) to reflect path changes
rockyRaccoon13 c4389ee
implemented Nimble fonts
amur-bashirov bdc82b0
implemented Nimble fonts
amur-bashirov e203c5c
Merge branch 'main' into React -- restructured code
rockyRaccoon13 4e73c76
deleted Blazor apps
amur-bashirov c46a04e
deleted react workflow
amur-bashirov 2b4e599
implemented Nimble fonts
amur-bashirov d65631e
edited Instructions. for running proxy server
rockyRaccoon13 694df61
edited Instructions. for running proxy server
rockyRaccoon13 1be8f3c
add webapp_deploy
rockyRaccoon13 032ae88
fix (workflow) app dirs
rockyRaccoon13 8fb5d11
fixed workflow target path
rockyRaccoon13 b2c55d1
Add Blazor WebAssembly authentication example
Samuelsotogit 6006bac
rm(junk Readme_files folder)
rockyRaccoon13 f737b36
added green box border
amur-bashirov 057cea9
edit(README) edit web_app examples
rockyRaccoon13 f8a6374
added green box border
amur-bashirov 8090b68
Merge branch 'main' into React
rockyRaccoon13 9dc7710
added padding
amur-bashirov af2732f
changed the titles for the links
amur-bashirov c22cbb3
changed all the divs inside the header to make the tabs as links them…
amur-bashirov 3611ec8
renamed title component to make css easier to work with
amur-bashirov e6ca6f7
polished design for links
amur-bashirov f62fceb
added logos folder
amur-bashirov adc2147
clean up(bad files)
rockyRaccoon13 bdfdfa2
remove react logo
rockyRaccoon13 44a7753
delete font files
rockyRaccoon13 8eccb1d
Added README.md and refactored the code
Samuelsotogit fd194aa
Merge remote-tracking branch 'origin/NewReact' into React
rockyRaccoon13 88bfba7
Updated Base URL in program.cs so API call in API.razor would work in…
Samuelsotogit 2550523
Update README.md edit letter casing
rockyRaccoon13 500e5d7
Update .gitignore -- removed .net ignores
rockyRaccoon13 26ec764
change web app folder names to match casing
rockyRaccoon13 7528064
move .gitignore to parent folder (1 per project)
rockyRaccoon13 f5bc6b0
Adjusting Blazor Server to Nimble
Hecktomb200 577f41e
Prettified json response
Samuelsotogit a6cdd91
Merge branch 'Blazor' of https://github.com/Samuelsotogit/systemlink-…
Samuelsotogit 2afac86
Removed ReactExploration.razor.css
Hecktomb200 8ac2479
Merge branch 'Blazor' of https://github.com/Samuelsotogit/systemlink-…
Hecktomb200 d65a7dc
Update .github/workflows/webapp-deploy.yml
rockyRaccoon13 072561b
fixed eslint config (app ts/tsx, js, and vite errors)
rockyRaccoon13 93cd548
fix basic linting errors
rockyRaccoon13 fedfca4
fixed eslint config (app ts/tsx, js, and vite errors)
rockyRaccoon13 6295d5d
fix basic linting errors
rockyRaccoon13 ee663e5
changed term website to env to refer to SL UI env
rockyRaccoon13 31cfc8d
change package.json meta
rockyRaccoon13 ec495bc
Add NimbleTable API display and configure NimbleBlazor for WASM
Samuelsotogit 60dd345
updated readme for service proxy
rockyRaccoon13 8e95274
merge css-> scss changes
amur-bashirov 4ff4719
change css -> scss import
amur-bashirov f5b3dc9
solved lint issue with logging
amur-bashirov 105cfb8
Updated Folder Pathing
Hecktomb200 b3b99df
Merge remote-tracking branch 'upstream/main' into Blazor
Hecktomb200 c0e29e5
Remove base tag from index.html to resolve csp issues and edited base…
Samuelsotogit a6529f4
made lint to ignore dist folder
amur-bashirov 6cd3b25
finished lint problems
amur-bashirov 275b689
update webapp workflow triggers and cancel on concurrent triggers
rockyRaccoon13 06a0c28
Merge branch 'devOps/CI_CD' into prUpdate
rockyRaccoon13 a37cdfa
Updated API Call to Nimble Table
Hecktomb200 a8ff6e2
polisehd scss file
amur-bashirov 293f82f
Merge branch 'devOps/CI_CD' of https://github.com/Samuelsotogit/syste…
amur-bashirov 3dd6cd4
polisehd final version of scss
amur-bashirov a7eb8a4
Fixed index.html to avoid CSP issues with system link
Samuelsotogit 6b8cae2
Merge branch 'Blazor' of https://github.com/Samuelsotogit/systemlink-…
Samuelsotogit 318c5c1
Refactored app's visual design and updated README.
Samuelsotogit 7384c3c
Remove tracked build artifacts from obj/ directories
Samuelsotogit ba67dc5
Merge branch 'main' of https://github.com/Samuelsotogit/systemlink-en…
Samuelsotogit 35d79a5
Remove tracked build artifacts from Blazor branch
Samuelsotogit a06e8ec
Merge branch 'Blazor'
Samuelsotogit 414abfa
Renamed the reference link on top level README.md
Samuelsotogit File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| name: Deploy React WebApps | ||
|
|
||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks like there are 3 Blazor apps in this PR: |
||
| on: | ||
| pull_request: | ||
| paths: | ||
| - "examples/Web Applications/Framework Examples/**" | ||
| - ".github/workflows/deploy.yml" | ||
|
|
||
| push: | ||
| branches: | ||
| - "**" | ||
| paths: | ||
| - "examples/Web Applications/Framework Examples/**" | ||
| - ".github/workflows/deploy.yml" | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| build-package-deploy: | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| matrix: # Add frameworks and Folder names here | ||
| include: | ||
| - framework: React | ||
| app-folder: ApiKeyAuthApp | ||
|
|
||
| # - framework: Angular | ||
| # app-folder: my-angular-app-1 # example entry | ||
|
|
||
| env: | ||
| NODE_VERSION: "24.x.x" | ||
| REACT_APPS_DIR: "examples/Web Applications/Framework Examples/React" | ||
| ANGULAR_APPS_DIR: "examples/Web Applications/Framework Examples/Angular" | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v6 | ||
|
|
||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: ${{ env.NODE_VERSION }} | ||
|
|
||
| - name: Set App Directory | ||
| run: | | ||
| if [ "${{ matrix.framework }}" == "React" ]; then | ||
| echo "APP_DIR=${{ env.REACT_APPS_DIR }}/${{ matrix.app-folder }}" >> $GITHUB_ENV | ||
| else | ||
| echo "APP_DIR=${{ env.ANGULAR_APPS_DIR }}/${{ matrix.app-folder }}" >> $GITHUB_ENV | ||
| fi | ||
|
|
||
| - name: Install dependencies | ||
| working-directory: ${{ env.APP_DIR }} | ||
| run: npm ci | ||
|
|
||
| - name: Lint | ||
| working-directory: ${{ env.APP_DIR }} | ||
| run: npm run lint | ||
|
|
||
| - name: Build | ||
| working-directory: ${{ env.APP_DIR }} | ||
| run: npm run build | ||
|
|
||
| - name: Setup Homebrew + Install slcli | ||
| run: | | ||
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | ||
| brew tap ni-kismet/homebrew-ni | ||
| brew install slcli | ||
| echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH | ||
|
|
||
| - name: Package into .nipkg | ||
| working-directory: ${{ env.APP_DIR }} | ||
| run: | | ||
| WEBAPP_NAME=$(basename "$PWD") | ||
| slcli webapp pack dist/ --output "${WEBAPP_NAME}.nipkg" | ||
| echo "WEBAPP_NAME=${WEBAPP_NAME}" >> $GITHUB_ENV | ||
|
|
||
| - name: Upload .nipkg artifact to gitHub | ||
| uses: actions/upload-artifact@v6 | ||
| with: | ||
| name: ${{ matrix.app-folder }}.nipkg | ||
| path: ${{env.REACT_APPS_DIR}}/${{matrix.app-folder}}/${{env.WEBAPP_NAME}}.nipkg | ||
|
|
||
| - name: Login to SystemLink | ||
| run: | | ||
| slcli login --profile ghActions --url "${{ secrets.SL_API_URL }}" --api-key "${{ secrets.SL_API_KEY }}" --web-url "${{ secrets.SL_WEBSITE_URL }}" --workspace "${{secrets.SL_WORKSPACE}}" | ||
|
|
||
| - name: Deploy (publish new/update) webapp (nipkg) to NI internal SystemLink test tier | ||
| working-directory: ${{ env.APP_DIR }} | ||
| run: | | ||
| pkg=${{env.WEBAPP_NAME}}.nipkg | ||
| WEBAPP_NAME="$(basename "$pkg" .nipkg)_PROD" | ||
| echo "**Deploying "$pkg" "$WEBAPP_NAME"**" | ||
| WEBAPP_ID=$(slcli webapp list --workspace "${{ secrets.SL_WORKSPACE }}" --filter "$WEBAPP_NAME" --format json | jq -r '.[0].id // empty') | ||
| if [[ -z "$WEBAPP_ID" ]]; then | ||
| echo " *Webapp does not exist -- publishing new" | ||
| slcli webapp publish "$pkg" --name "$WEBAPP_NAME" --workspace "${{ secrets.SL_WORKSPACE }}" | ||
| else | ||
| echo " *Webapp exists -- updating" | ||
| slcli webapp publish "$pkg" --id "$WEBAPP_ID" | ||
| fi | ||
| echo "**Deployed "$WEBAPP_NAME"**" | ||
This file contains hidden or 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 hidden or 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
2 changes: 2 additions & 0 deletions
2
examples/Web Applications/Dev Tools/ApiServiceProxy/.gitignore
This file contains hidden or 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 |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| proxyConfig.js | ||
| node_modules/ |
43 changes: 43 additions & 0 deletions
43
examples/Web Applications/Dev Tools/ApiServiceProxy/README.md
This file contains hidden or 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 |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # API Service Proxy | ||
|
|
||
| The API Service Proxy is used to **locally** run web applications that call | ||
| SystemLink APIs. | ||
|
|
||
| ## Purpose -- Local development | ||
|
|
||
| The API Service Proxy is used to forward requests to a SystemLink API server | ||
| (e.g. https://demo-api.lifecyclesolutions.ni.com). The forward proxy is | ||
| necessary because the API server does not allow cross origin sharing (no CORS). | ||
|
|
||
| The service proxy should be used when testing a web application in a local | ||
| environment. An api key is required to authorize requests made to a SystemLink | ||
| API server. | ||
|
|
||
| ### Do not make calls through the proxy in production | ||
|
|
||
| Web applications that are hosted in a SystemLink environment should route | ||
| requests to the environment's domain (i.e. | ||
| https://demo.lifecyclesolutions.ni.com). | ||
|
|
||
| The endpoints in the SystemLink deployment environment are the same as the | ||
| SystemLink API endpoints, but authorization is done via a cookie which the | ||
| browser will automatically send with the request. | ||
|
|
||
| ## Setup | ||
|
|
||
| 1. Install dependencies: | ||
|
|
||
| ```bash | ||
| npm ci | ||
| ``` | ||
|
|
||
| 2. Create a `proxyConfig.js` from `proxyConfig.example.js` and add your | ||
| SystemLink API URL and API key | ||
|
|
||
| 3. Start the backend server: | ||
|
|
||
| ```bash | ||
| node index.js | ||
| ``` | ||
|
|
||
| 4. Server will be running on `localhost:4000` |
44 changes: 44 additions & 0 deletions
44
examples/Web Applications/Dev Tools/ApiServiceProxy/index.js
This file contains hidden or 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 |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| import express from "express"; | ||
|
|
||
| import cors from "cors"; | ||
|
|
||
| import { apiKey, apiServerUrl } from "./proxyConfig.js"; | ||
| const app = express(); | ||
| const PORT = 4000; | ||
|
|
||
| // Middleware | ||
| app.use(cors()); | ||
| app.use(express.json()); | ||
|
|
||
| // Simple proxy endpoint | ||
|
|
||
| app.all("/apiProxy/*splat", async (req, res) => { | ||
| const forwardPath = req.originalUrl.replace(/^\/apiProxy/, ""); | ||
| const forwardFullUrl = `${apiServerUrl}${forwardPath}`; | ||
|
|
||
| const forwardReq = { | ||
| method: req.method, | ||
| headers: { | ||
| "x-ni-api-key": apiKey, | ||
| }, | ||
| body: req.body, | ||
| }; | ||
|
|
||
| try { | ||
| const upstreamResponse = await fetch(forwardFullUrl, forwardReq); | ||
|
|
||
| if (!upstreamResponse.ok) { | ||
| return res.status(response.status).send({}); | ||
| } | ||
|
|
||
| const data = await upstreamResponse.json(); | ||
| res.json(data); | ||
| } catch (err) { | ||
| console.error(err); | ||
| res.status(500).send({ error: "Proxy server error" }); | ||
| } | ||
| }); | ||
|
|
||
| app.listen(PORT, () => { | ||
| console.log(`Proxy server running on http://localhost:${PORT}`); | ||
| }); |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be good for us to focus on getting #73 completed before spending too much more time on this PR. Right now it's hard to track which files in this PR are coming from that one, and what the diffs are between the files that are in both PRs.
GitHub is also struggling with the number of files in the PR and that would help it keep up (along with gitignoring the binary files like I mentioned in another comment).