Skip to content

Commit

Permalink
Merge branch 'main' into inspect-progress-bars
Browse files Browse the repository at this point in the history
  • Loading branch information
CodyCBakerPhD authored May 6, 2024
2 parents f4ced13 + c501319 commit 23fc497
Show file tree
Hide file tree
Showing 15 changed files with 67 additions and 64 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/Build-and-deploy-mac.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: Mac Release
run-name: ${{ github.actor }} is building a MAC release for NWB GUIDE
# NOTE: even though the runner is an arm64 mac, both x64 and arm64 releases will be made

on:
workflow_dispatch:
Expand All @@ -22,7 +23,7 @@ jobs:
- uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: nwb-guide
environment-file: environments/environment-MAC.yml
environment-file: environments/environment-MAC-arm64.yml
auto-activate-base: false

- uses: actions/setup-node@v3
Expand Down
14 changes: 11 additions & 3 deletions .github/workflows/pyflask-build-and-dist-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,13 @@ jobs:
# prefix: /usr/share/miniconda3/envs/nwb-guide

- python-version: "3.9"
os: macos-latest
label: environments/environment-Mac.yml
os: macos-latest # Mac arm64 runner
label: environments/environment-MAC-arm64.yml
prefix: /Users/runner/miniconda3/envs/nwb-guide

- python-version: "3.9"
os: macos-13 # Mac x64 runner
label: environments/environment-MAC.yml
prefix: /Users/runner/miniconda3/envs/nwb-guide

- python-version: "3.9"
Expand All @@ -45,6 +50,9 @@ jobs:
- uses: actions/checkout@v4
- run: git fetch --prune --unshallow --tags

- name: Printout architecture
run: uname -m

# see https://github.com/conda-incubator/setup-miniconda#caching-environments
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
Expand Down Expand Up @@ -81,7 +89,7 @@ jobs:
- run: npm ci --verbose

# fix for macos build
- if: matrix.os == 'macos-latest'
- if: matrix.os == 'macos-latest' || matrix.os == 'macos-13'
run: rm -f /Users/runner/miniconda3/envs/nwb-guide/lib/python3.9/site-packages/sonpy/linux/sonpy.so

- name: Build PyFlask distribution
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/testing-live-services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,11 @@ jobs:
- os: ubuntu-latest
label: environments/environment-Linux.yml

- os: macos-latest
label: environments/environment-Mac.yml
- os: macos-latest # Mac arm64 runner
label: environments/environment-MAC-arm64.yml

- os: macos-13 # Mac x64 runner
label: environments/environment-MAC.yml

- os: windows-latest
label: environments/environment-Windows.yml
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,11 @@ jobs:
- os: ubuntu-latest
label: environments/environment-Linux.yml

- os: macos-latest
label: environments/environment-Mac.yml
- os: macos-latest # Mac arm64 runner
label: environments/environment-MAC-arm64.yml

- os: macos-13 # Mac x64 runner
label: environments/environment-MAC.yml

- os: windows-latest
label: environments/environment-Windows.yml
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ repos:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 24.4.0
rev: 24.4.2
hooks:
- id: black
exclude: ^docs/
Expand Down
6 changes: 3 additions & 3 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Welcome to the NWB GUIDE documentation!
=======================================
NWB GUIDE documentation
=======================
|
.. image:: ../src/renderer/assets/img/logo-guide-draft-transparent-tight.png
Expand All @@ -13,7 +13,7 @@ Welcome to the NWB GUIDE documentation!
The **NWB Graphical User Interface for Data Entry (GUIDE)** is an Electron-based application designed to help you navigate
the complex process of converting data from common proprietary formats into the :nwb-overview:`Neurodata Without Borders (NWB) <>` standard.

The resulting files are fully compliant with the best practices expected of the :dandi-archive:`Distributed Archives for Neurophysiology Data Integration (DANDI) <>`.
The resulting files are fully compliant with the best practices expected by the :dandi-archive:`Distributed Archives for Neurophysiology Data Integration (DANDI) <>`.

.. toctree::
:maxdepth: 2
Expand Down
4 changes: 2 additions & 2 deletions docs/tutorials/dataset.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Dataset Generation
==================
Example Dataset Generation
==========================

Our tutorials focus on converting extracellular electrophysiology data in the SpikeGLX and Phy formats.
To get you started as quickly as possible, we’ve created a way to generate this Neuropixel-like dataset at the click of a button!
Expand Down
1 change: 1 addition & 0 deletions src/renderer/src/pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ const pages = {
title: "Conversion Review",
label: "Review conversion",
section: sections[2],
sync: ["conversion"],
}),

upload: new GuidedUploadPage({
Expand Down
4 changes: 2 additions & 2 deletions src/renderer/src/progress/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,13 +182,13 @@ export const get = (name) => {
);
};

export function resume(name) {
export async function resume(name) {
const global = this ? this.load(name) : get(name);

let commandToResume = global["page-before-exit"] || "//details";
updateURLParams({ project: name });

if (this) this.onTransition(commandToResume);
if (this) await this.onTransition(commandToResume);

return commandToResume;
}
Expand Down
12 changes: 6 additions & 6 deletions src/renderer/src/stories/Dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ export class Dashboard extends LitElement {

this.page.set(toPass, false);

this.page.checkSyncState().then(() => {
this.page.checkSyncState().then(async () => {
const projectName = info.globalState?.project?.name;

this.subSidebar.header = projectName
Expand All @@ -264,8 +264,8 @@ export class Dashboard extends LitElement {
});

// Skip right over the page if configured as such
if (previous && previous.info.previous === this.page) this.page.onTransition(-1);
else this.page.onTransition(1);
if (previous && previous.info.previous === this.page) await this.page.onTransition(-1);
else await this.page.onTransition(1);
}
});
}
Expand Down Expand Up @@ -328,13 +328,13 @@ export class Dashboard extends LitElement {
if (typeof transition === "number") {
const info = this.page.info;
const sign = Math.sign(transition);
if (sign === 1) return this.setAttribute("activePage", info.next.info.id);
else if (sign === -1) return this.setAttribute("activePage", (info.previous ?? info.parent).info.id); // Default to back in time
if (sign === 1) transition = info.next.info.id;
else if (sign === -1) transition = (info.previous ?? info.parent).info.id; // Default to back in time
}

this.setAttribute("activePage", transition);

return await promise;
return promise;
};

this.main.updatePages = () => {
Expand Down
2 changes: 1 addition & 1 deletion src/renderer/src/stories/pages/FormPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export class GuidedFormPage extends Page {
onNext: async () => {
await this.save(); // Save in case validation fails
await this.form.validate(); // Validate the results of the form
this.to(1);
return this.to(1);
},
};

Expand Down
27 changes: 14 additions & 13 deletions src/renderer/src/stories/pages/Page.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { LitElement, html } from "lit";
import { runConversion } from "./guided-mode/options/utils.js";
import { get, save } from "../../progress/index.js";
import { dismissNotification, notify } from "../../dependencies/globals.js";
import { dismissNotification, isStorybook, notify } from "../../dependencies/globals.js";
import { randomizeElements, mapSessions, merge } from "./utils.js";

import { resolveMetadata } from "./guided-mode/data/utils.js";
Expand Down Expand Up @@ -134,9 +134,10 @@ export class Page extends LitElement {

// Indicate conversion has run successfully
const { desyncedData } = this.info.globalState;
if (!desyncedData) this.info.globalState.desyncedData = {};

if (desyncedData) {
delete desyncedData[key];
if (Object.keys(desyncedData).length === 0) delete this.info.globalState.desyncedData;
desyncedData[key] = false;
await this.save({}, false);
}
}
Expand Down Expand Up @@ -233,18 +234,18 @@ export class Page extends LitElement {

checkSyncState = async (info = this.info, sync = info.sync) => {
if (!sync) return;
if (isStorybook) return;

const { desyncedData } = info.globalState;
if (desyncedData) {
return Promise.all(
sync.map((k) => {
if (desyncedData[k]) {
if (k === "conversion") return this.convert();
else if (k === "preview") return this.convert({ preview: true });
}
})
);
}

return Promise.all(
sync.map((k) => {
if (desyncedData?.[k] !== false) {
if (k === "conversion") return this.convert();
else if (k === "preview") return this.convert({ preview: true });
}
})
);
};

updateSections = () => {
Expand Down
14 changes: 0 additions & 14 deletions src/renderer/src/stories/pages/guided-mode/GuidedStart.stories.js

This file was deleted.

11 changes: 1 addition & 10 deletions tests/e2e/e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,17 +144,8 @@ describe('E2E Test', () => {

}, { upload_to_dandi: true })

await toNextPage('structure') // Save data without a popup
await to('//conversion')

// Do not prompt to save
await evaluate(() => {
const dashboard = document.querySelector('nwb-dashboard')
const page = dashboard.page
page.unsavedUpdates = false
})

await to('//upload') // NOTE: It would be nice to avoid having to re-run the conversion...
await to('//upload')

})

Expand Down
17 changes: 13 additions & 4 deletions tests/e2e/workflow.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { describe, test } from "vitest"
import { describe, expect, test } from "vitest"

import { sleep } from '../puppeteer'

Expand Down Expand Up @@ -429,21 +429,30 @@ export default async function runWorkflow(name, workflow, identifier) {

test('Review NWB Inspector output', async () => {

await takeScreenshot(join(identifier, 'inspect-page'), 5000) // Finish file inspection and allow full load of Neurosift page
await takeScreenshot(join(identifier, 'inspect-page'), 5000) // Allow for the completion of file validation
await toNextPage('preview')

})

test('Review Neurosift visualization', async () => {
await takeScreenshot(join(identifier, 'preview-page'), 1000) // Finish loading Neurosift
await takeScreenshot(join(identifier, 'preview-page'), 1000) // Allow full load of Neurosift page
await toNextPage('conversion')
})

test('View the conversion results', async () => {
await takeScreenshot(join(identifier, 'conversion-results-page'), 1000)

const conversionCompleted = await evaluate(() => {
const dashboard = document.querySelector('nwb-dashboard')
const page = dashboard.page
return !!page.info.globalState.conversion
})

await takeScreenshot(join(identifier, 'conversion-results-page'), 300)
if (workflow.upload_to_dandi) await toNextPage('upload')
else await toNextPage('')

expect(conversionCompleted).toBe(true)

})


Expand Down

0 comments on commit 23fc497

Please sign in to comment.