Skip to content

Commit 0d8c70a

Browse files
authored
Merge pull request #50 from open-ephys/update-gha
Update to modern GitHub Pages deployment
2 parents 8c43afe + 2497df2 commit 0d8c70a

33 files changed

+358
-294
lines changed

.github/workflows/sphinx-build.yml

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
name: Update Documentation
1+
name: Build Documentation
22

33
on:
44
push:
5-
branches:
6-
- main
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
78

89
jobs:
910
build:
10-
1111
runs-on: ubuntu-latest
1212

1313
steps:
@@ -19,36 +19,52 @@ jobs:
1919
- name: Setup Python
2020
uses: actions/setup-python@v4
2121
with:
22-
python-version: "3.10"
22+
python-version: "3.12"
2323

2424
- name: Install pipenv
2525
run: |
2626
python -m pip install --upgrade pipenv==2024.4.1 wheel
2727
28+
- id: cache-pipenv
29+
uses: actions/cache@v4
30+
with:
31+
path: ~/.local/share/virtualenvs
32+
key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }}
33+
2834
- name: Install dependencies
35+
if: steps.cache-pipenv.outputs.cache-hit != 'true'
2936
run: |
3037
pipenv install --deploy --dev
3138
32-
- name: Make
39+
- name: Manually install setuptools # NB: This step is required to correctly link the pkg_resources module
3340
run: |
34-
pipenv run make html
41+
pipenv run python -m pip install -U setuptools
3542
36-
# 2. Add and commit HTML files to gh-pages branch
37-
- name: Commit documentation changes
43+
- name: Build HTML pages
3844
run: |
39-
git clone https://github.com/${{ github.repository_owner }}/gui-docs.git --branch gh-pages --single-branch gh-pages
40-
cd gh-pages
41-
rm -rf *
42-
cp -r ../docs/html/* .
43-
git config --local user.email "[email protected]"
44-
git config --local user.name "GitHub Action"
45-
git add .
46-
git commit -m "Update documentation" -a || true
47-
48-
# 3. Push changes to gh-pages branch (updates documentation page)
49-
- name: Push changes
50-
uses: ad-m/github-push-action@master
45+
pipenv run make html SPHINXOPTS="-W --keep-going"
46+
47+
- name: Check all external links
48+
id: make_linkcheck
49+
run: |
50+
pipenv run make linkcheck SPHINXOPTS="-W --keep-going"
51+
52+
- name: Upload GitHub Pages Artifact
53+
uses: actions/upload-pages-artifact@v3
5154
with:
52-
branch: gh-pages
53-
directory: gh-pages
54-
github_token: ${{ secrets.GITHUB_TOKEN }}
55+
path: docs/html/
56+
57+
deploy:
58+
name: Deploy docs
59+
runs-on: ubuntu-22.04
60+
needs: build
61+
if: github.event_name == 'push' && always() && !failure() && !cancelled()
62+
63+
permissions:
64+
# Both required by actions/deploy-pages
65+
pages: write
66+
id-token: write
67+
68+
steps:
69+
- name: Deploy to GitHub Pages
70+
uses: actions/deploy-pages@v4

.travis.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

Pipfile.lock

Lines changed: 235 additions & 190 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/Developer-Guide/Common-and-external-libraries.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ The first step in creating a new common library is to create a repository from t
4343

4444
5. Click the green "Create repository from template" button.
4545

46-
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop <https://desktop.github.com/>`__ app, clone your the common library repository into this new folder. Your directory structure should look something like this:
46+
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop <https://github.com/apps/desktop>`__ app, clone your the common library repository into this new folder. Your directory structure should look something like this:
4747

4848
.. code-block::
4949

source/Developer-Guide/Compiling-plugins.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Most Open Ephys GUI plugins work equally well on Windows, Linux, and Mac. Howeve
1515
Obtaining the source code
1616
--------------------------
1717

18-
The first step for compiling a pre-existing plugin is downloading the source code. If you're planning to make your own changes to the plugin, we recommend first forking the plugin's GitHub repository to your own account, then cloning the fork via the `command line <https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository-using-the-command-linee>`__ or the `GitHub Desktop app <https://desktop.github.com/>`__. If you're not planning to make any changes to the plugin, you can clone the original repository or download the code as a **.zip** file.
18+
The first step for compiling a pre-existing plugin is downloading the source code. If you're planning to make your own changes to the plugin, we recommend first forking the plugin's GitHub repository to your own account, then cloning the fork via the `command line <https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository?tool=cli>`__ or the `GitHub Desktop app <https://github.com/apps/desktop/>`__. If you're not planning to make any changes to the plugin, you can clone the original repository or download the code as a **.zip** file.
1919

2020
All of the officially supported plugins assume that the plugin source code is contained within a separate directory *at the same level* as that of the host application (the :code:`plugin-GUI` GitHub repository). Before attempting to compile your plugin, make sure your directory structure looks something like this:
2121

source/Developer-Guide/Compiling-the-GUI.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Compiling the GUI
66
=====================
77

8-
If you'd like to build the GUI from source, you'll have to download the code to your local machine. We recommend first forking the `GUI's GitHub repository <https://github.com/open-ephys/plugin-GUI>`__ to your own account, then cloning the fork via the `command line <https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository-using-the-command-line>`__ or the `GitHub Desktop app <https://desktop.github.com/>`__.
8+
If you'd like to build the GUI from source, you'll have to download the code to your local machine. We recommend first forking the `GUI's GitHub repository <https://github.com/open-ephys/plugin-GUI>`__ to your own account, then cloning the fork via the `command line <https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository?tool=cli>`__ or the `GitHub Desktop app <https://github.com/apps/desktop/>`__.
99

1010

1111
Windows

source/Developer-Guide/Creating-a-new-plugin.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ The first step in creating a new plugin is to create a repository from the appro
3535

3636
5. Click the green "Create repository from template" button.
3737

38-
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop <https://desktop.github.com/>`__ app, clone your the plugin repository into this new folder. Your directory structure should look something like this:
38+
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop <https://github.com/apps/desktop/>`__ app, clone your the plugin repository into this new folder. Your directory structure should look something like this:
3939

4040
.. code-block::
4141
@@ -58,7 +58,7 @@ Inside the "Source" folder of the plugin repository you just cloned, you'll find
5858
**Processor** and **Visualizer** Plugins
5959
-------------------------------------------
6060

61-
Most plugins will be "processors," meaning they implement the :code:`process()` method of `GenericProcessor.h <https://github.com/open-ephys/plugin-GUI/blob/master/Source/Processors/GenericProcessor/GenericProcessor.h>`__. This method is called repeatedly during the GUI's acquisition loop, so each plugin has a chance to respond to incoming data (or generate its own). If they include a canvas for displaying data, Processor plugins can also be Visualizer plugins.
61+
Most plugins will be "processors," meaning they implement the :code:`process()` method of `GenericProcessor.h <https://github.com/open-ephys/plugin-GUI/blob/main/Source/Processors/GenericProcessor/GenericProcessor.h>`__. This method is called repeatedly during the GUI's acquisition loop, so each plugin has a chance to respond to incoming data (or generate its own). If they include a canvas for displaying data, Processor plugins can also be Visualizer plugins.
6262

6363
Processor and Visualizer plugins should edit the following lines in :code:`OpenEphysLib.cpp`:
6464

source/Developer-Guide/Modifying-the-host-application.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ If you're planning to update the host application, or any of the plugins in the
1414

1515
1. Fork the `GUI's GitHub repository <https://github.com/open-ephys/plugin-GUI>`__ to your own account.
1616

17-
2. Clone the fork via the `command line <https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository-using-the-command-line>`__ or the `GitHub Desktop app <https://desktop.github.com/>`__.
17+
2. Clone the fork via the `command line <https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository?tool=cli>`__ or the `GitHub Desktop app <https://github.com/apps/desktop/>`__.
1818

1919
3. Compile the GUI for your platform of choice according to the steps on :ref:`this page<compilingthegui>`.
2020

source/Developer-Guide/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Before you :ref:`create a new plugin<creatinganewplugin>`, you'll need to have s
2424
Updating the host application
2525
------------------------------
2626

27-
If you'd like to make changes to the Open Ephys GUI main repository, first read through :ref:`this section<modifyingthehostapplication>` of the developer documentation. Then, take a look at our list of `active projects <https://github.com/open-ephys/plugin-GUI/projects>`__ to find out about the features we're planning to update in the near future. If you're interested in tackling one of these projects, or have other ideas for useful additions to the main application, don't hesistate to `open an issue on GitHub <https://github.com/open-ephys/plugin-GUI/issues>`__.
27+
If you'd like to make changes to the Open Ephys GUI main repository, first read through :ref:`this section<modifyingthehostapplication>` of the developer documentation. Then, take a look at our list of `active projects <https://github.com/open-ephys/plugin-GUI/projects?query=is%3Aopen>`__ to find out about the features we're planning to update in the near future. If you're interested in tackling one of these projects, or have other ideas for useful additions to the main application, don't hesitate to `open an issue on GitHub <https://github.com/open-ephys/plugin-GUI/issues>`__.
2828

2929
Other projects
3030
---------------

source/FAQ/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@ If you want to contribute in a more substantial way, you could add funding for a
6262
6363
**Can I license the Open Ephys GUI for a commercial project?**
6464

65-
The GUI is released under a `GPL 3.0 license <https://github.com/open-ephys/plugin-GUI/blob/master/LICENSE>`__, which means that any derivative software must also be open source. However, if you'd like to use the GUI to acquire data from a closed-source device, this is both easy and encouraged! We would love for more companies to use the GUI, rather than choosing to build their own acquisition software from scratch.
65+
The GUI is released under a `GPL 3.0 license <https://github.com/open-ephys/plugin-GUI/blob/main/LICENSE>`__, which means that any derivative software must also be open source. However, if you'd like to use the GUI to acquire data from a closed-source device, this is both easy and encouraged! We would love for more companies to use the GUI, rather than choosing to build their own acquisition software from scratch.
6666

6767
|

source/Tutorials/How-To-Make-Your-Own-Plugin.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ The first step in creating a plugin is to create a new code repository from a te
3636
.. image:: ../_static/images/tutorials/makeyourownplugin/makeyourownplugin-02.png
3737
:alt: Create TTLEventGenerator Repository
3838

39-
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git <https://git-scm.com/>`__ command line interface or the `GitHub Desktop <https://desktop.github.com/>`__ app, clone the newly created plugin repository into this directory. Your directory structure should look something like this:
39+
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git <https://git-scm.com/>`__ command line interface or the `GitHub Desktop <https://github.com/apps/desktop/>`__ app, clone the newly created plugin repository into this directory. Your directory structure should look something like this:
4040

4141
.. code-block::
4242

source/Tutorials/Making-Your-Own-Visualizer-Plugin.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ The first step in creating a plugin is to create a new code repository from a te
3838
.. image:: ../_static/images/tutorials/makeyourownvisualizerplugin/visualizerplugin-02.png
3939
:alt: Create rate-viewer Repository
4040

41-
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git <https://git-scm.com/>`__ command-line interface or the `GitHub Desktop <https://desktop.github.com/>`__ app, clone the newly created plugin repository into this directory.
41+
On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git <https://git-scm.com/>`__ command-line interface or the `GitHub Desktop <https://github.com/apps/desktop/>`__ app, clone the newly created plugin repository into this directory.
4242

4343
Your directory structure should look something like this:
4444

source/User-Manual/Exploring-the-user-interface.rst

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Processors handle four types of data:
4040

4141
* **Text events:** messages generated by the user or other processors, or sent via the network. Some processors have specific behaviors that are triggered by text events.
4242

43-
In addition, it's important to keep in mind that every continuous signal, event, and spike must be associated with a single *data stream*, or a collection of channels that are sampled synchronously. Any time you merge together data from different Sources, channels from each source will belong to different data streams. In addition, some Source processors (such as :ref:`neuropixelspxi`) generate multiple data streams. In most cases, data from separate streams will be processed independently, because samples from different streams are not guaranteed to be aligned. See the :ref:`whatsnew` page for more information about modifying parameters for individual streams.
43+
In addition, it's important to keep in mind that every continuous signal, event, and spike must be associated with a single *data stream*, or a collection of channels that are sampled synchronously. Any time you merge together data from different Sources, channels from each source will belong to different data streams. In addition, some Source processors (such as :ref:`neuropixelspxi`) generate multiple data streams. In most cases, data from separate streams will be processed independently, because samples from different streams are not guaranteed to be aligned. See the :ref:`whatsnewinv06x` page for more information about modifying parameters for individual streams.
4444

4545

4646
3. Message Center
@@ -129,7 +129,7 @@ View
129129
Help
130130
-----
131131

132-
* **Online documentation...**: Open the GUI's documentation site in a browser window (requires access to the interent).
132+
* **Online documentation...**: Open the GUI's documentation site in a browser window (requires access to the internet).
133133

134134

135135
Debug console
@@ -155,14 +155,13 @@ Windows
155155
Debug console is automatically displayed on Windows when you run the :code:`open-ephys` application.
156156

157157

158-
159158
Log files
160159
###############
161160

162-
Every action taken by the user is logged to a file, along with additional information that can be useful for spotting issues when things go wrong. If the GUI exits sucessfully, the latest log file will be overwritten the next time the GUI is launched. If the GUI crashes, then the name of the latest log file will be appended with a unique date string.
161+
Every action taken by the user is logged to a file, along with additional information that can be useful for spotting issues when things go wrong. If the GUI exits successfully, the latest log file will be overwritten the next time the GUI is launched. If the GUI crashes, then the name of the latest log file will be appended with a unique date string.
163162

164163
Linux
165-
-------
164+
------
166165

167166
Log files are written to :code:`/home/<username>/open-ephys/configs-api8`
168167

source/User-Manual/Hardware-requirements.rst

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ More than 1000 `Open Ephys acquisition boards <https://open-ephys.org/acq-board>
1919

2020
The following hardware is recommended for experiments that use the acquisition board:
2121

22+
.. _computer-specs-open-ephys:
23+
2224
Computer specs
2325
#####################
2426

@@ -39,11 +41,11 @@ Other hardware
3941

4042
These are the minimum requirements for getting up and running. You will likely need additional hardware for the full experiment (e.g. reward ports, mazes, commutators, light for optogenetic stimulation).
4143

42-
* **Acquisition board** (available from the `Open Ephys Store <https://open-ephys.org/acquisition-system/acquisition-board>`__)
44+
* **Acquisition board** (available from the `Open Ephys Store <https://open-ephys.org/acquisition-system/oeps-9029>`__)
4345

4446
* **I/O boards** for interfacing with auxiliary analog and digital signals (available from the `Open Ephys Store <https://open-ephys.org/acquisition-system/io-board-pcb>`__)
4547

46-
* **Headstages and cables** (available as part of the `Open Ephys Starter Kit <https://open-ephys.org/acquisition-system/starter-kit>`__ or from `Intan Technologies <https://intantech.com/pricing.html>`__; there is also a low-profile headstage available from the `Open Ephys Store <https://open-ephys.org/acquisition-system/low-profile-spi-headstage-64ch>`__)
48+
* **Headstages and cables** (available as part of the `Open Ephys Starter Kit <https://open-ephys.org/acquisition-system/starter-kit>`__ or from `Intan Technologies <https://intantech.com/pricing.html>`__; there is also a low-profile headstage available from the `Open Ephys Store <https://open-ephys.org/acquisition-system/oeps-6570-6571>`__)
4749

4850
* **Electrodes** - there is lots of flexibility here, as long as you have some way to interface between your electrodes and a compatible headstage. For tetrodes, we recommend the `shuttleDrive <https://open-ephys.org/drive-implant>`__.
4951

@@ -58,6 +60,8 @@ Neuropixels are quickly become a new standard for electrophysiology, given their
5860

5961
The following hardware is recommended for experiments with Neuropixels:
6062

63+
.. _computer-specs-neuropixels:
64+
6165
Computer specs
6266
################
6367

@@ -77,7 +81,9 @@ Computer specs
7781
Other hardware
7882
###############
7983

80-
The following summarizes the additional hardware you'll need to buy to run Neuropixels experiments. OneBoxes, PXI basestations, headstages, and probes can be ordered from `neuropixels.org <https://neuropixels.org>`__. Other PXI components are available from NI.
84+
The following summarizes the additional hardware you'll need to buy to run Neuropixels experiments. OneBoxes, PXI basestations, headstages, and probes can be ordered from `neuropixels.org <https://www.neuropixels.org>`__. Other PXI components are available from NI.
85+
86+
.. _onebox-hardware-requirements:
8187

8288
OneBox
8389
-------

0 commit comments

Comments
 (0)