Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
628 commits
Select commit Hold shift + click to select a range
21a27fa
debug
Apr 18, 2022
4a2aafc
debug
Apr 18, 2022
6a1cea9
cleaned up the workflow
May 3, 2022
b91ec42
Revert "cleaned up the workflow"
May 3, 2022
640910a
modified github workflow
May 3, 2022
a25b609
fixed error in build.yaml
May 3, 2022
f04830e
fixed another error in the workflow
May 3, 2022
0f57f1d
changed job names
May 3, 2022
ea3adb4
fixed another error in the workflow
May 3, 2022
b34694d
changed job names
May 3, 2022
35d1a45
added a sudo to the linux python build
May 3, 2022
57a391a
Revert "added a sudo to the linux python build"
May 3, 2022
10890e4
modified the cmake args for he python build
May 4, 2022
4bbce8c
fixed comment
May 23, 2022
b0ccc71
Merge branch 'nymph2_2/develop' into nymph2_2/python-packaging-framework
MCFlowMace May 25, 2022
0f43765
Merge branch 'nymph2_2/python-packaging-framework' into nymph2_2/pybi…
MCFlowMace May 30, 2022
aa161ba
Add function to python module to get existing processors
MCFlowMace May 30, 2022
f024c13
Fix typo in macro for registering processors
MCFlowMace May 31, 2022
bd8e680
Merge pull request #40 from project8/fix/processor-macro-typo
nsoblath May 31, 2022
4e789a3
Add small test that demonstrates fetching C++ processor in python
MCFlowMace May 31, 2022
de7b511
Merge branch 'nymph2_2/pybind11' into nymph2_2/pybind11-merge
MCFlowMace May 31, 2022
a6d228e
Fix for installing pybind11 in Ubuntu build
MCFlowMace May 31, 2022
a0ce688
Fix pybind11 install again
MCFlowMace May 31, 2022
29b5093
responding to requested changes
Jun 2, 2022
83f56a8
Merge pull request #36 from project8/nymph2_2/python-packaging-framework
nsoblath Jun 2, 2022
966ae7d
Don't need an empty return buffer, so don't use a pointer to store th…
Jun 2, 2022
2a13c11
Merge branch 'nymph2_2/develop' into nymph2_2/pybind11-merge
MCFlowMace Jun 2, 2022
f67bff6
Fix the break and return in Controller, and add testing
Jun 7, 2022
2b99498
Finishing out ControlAccess with the return-access capabilities
Jun 8, 2022
935ab72
Converting hard tabs to spaces
Jun 10, 2022
ee2a7d6
Merge pull request #41 from project8/nymph2_2/pybind11-merge
nsoblath Jun 10, 2022
97d6561
Merge pull request #34 from project8/nymph2_2/return
nsoblath Jun 13, 2022
9bac081
Add variable to change build type
Jun 13, 2022
75969b1
Add binding code for nymph Data
MCFlowMace Jun 13, 2022
ef63a16
Small fix for data binding
MCFlowMace Jun 13, 2022
3cd0ea3
Move RunQueue to SingleRunController
Jun 13, 2022
c96a529
Add small demo for python binding of nymph Data
MCFlowMace Jun 13, 2022
d35f9db
Fixed test: configure controller first, then it works
Jun 13, 2022
b3d6fa0
Merge pull request #43 from project8/nymph2_2/data-binding
nsoblath Jun 13, 2022
49f2272
Move ConfigException out of the Processor files, and give it its own …
Jun 13, 2022
4a5b7c5
First implementation of unittest
psurukuc Jun 13, 2022
453573f
Documentation of the run-queue config moved rom ProcessorToolbox to S…
Jun 13, 2022
5b03edd
Merge pull request #42 from project8/nymph2_2/run-queue-refactor
nsoblath Jun 13, 2022
c7b0574
Changing test to data objects cos the examples are simpler
psurukuc Jun 13, 2022
ca038ac
Merge remote-tracking branch 'origin/nymph2_2/workshop' into nymph2_2…
psurukuc Jun 13, 2022
a5c998f
Modified TestData.py file to not overwrite the existing testdata.py file
psurukuc Jun 13, 2022
0dc3ce2
Addition of floating point testing
psurukuc Jun 13, 2022
0b5aaae
Added Testing/Python/testdata.py file which was previously removed by…
psurukuc Jun 13, 2022
871b0fc
Included github action for python testing. Also modified the file nam…
psurukuc Jun 13, 2022
b5579e1
add to readme
psurukuc Jun 13, 2022
620339b
Fix typo ?
psurukuc Jun 13, 2022
10bff53
Fix indentation
psurukuc Jun 13, 2022
b80818c
Add binding code for Signal class
MCFlowMace Jun 13, 2022
e4d8b09
Add installation of python distributable package in github workflow
psurukuc Jun 13, 2022
7f21c97
Nymph.cc Compiles, need to implement commandline interface
jkgaison65 Jun 13, 2022
66e15d9
Add overloaded constructor for Signal's python binding
MCFlowMace Jun 13, 2022
34885c8
Scarab update
Jun 14, 2022
9289b76
Update Scarab
Jun 14, 2022
58cf087
Remove the use of test classes from the pybind build
Jun 14, 2022
fc43567
Include Python binding headers in the bindings build
Jun 14, 2022
056329b
Build the testing executable using pbuilder
Jun 14, 2022
ad1b3ab
Added ProcessorRegistrar and PyProcCreator
Jun 14, 2022
1a868c2
Merge pull request #46 from project8/nymph2_2/testbuild
nsoblath Jun 14, 2022
4fb8b76
Merge branch 'nymph2_2/workshop' into nymph2_2/py_proc_reg
Jun 14, 2022
abc5f82
Add missing function in signal binding
MCFlowMace Jun 14, 2022
778a78a
Add memvars to Signal binding
MCFlowMace Jun 14, 2022
f0f44a0
Used pip install . instead of python build
psurukuc Jun 14, 2022
062165a
Minor cleanup
psurukuc Jun 14, 2022
7e2e6b5
Added a couple more test
psurukuc Jun 14, 2022
970224f
Replace testdata
psurukuc Jun 14, 2022
4a75c93
Removed test failure case
psurukuc Jun 14, 2022
8644d6e
reading config file from CL, initially working
jkgaison65 Jun 14, 2022
14974ff
Merge pull request #44 from project8/nymph2_2/implement_unittesting
MCFlowMace Jun 14, 2022
ae21d1c
Update scarab
Jun 14, 2022
1a71d5e
Setup to register and create processors from Python (creating process…
Jun 14, 2022
460299b
implemented return values for thrown exceptions
jkgaison65 Jun 14, 2022
00364c6
directory cleanup
jkgaison65 Jun 14, 2022
2067f4d
secondary cleanup of directories
jkgaison65 Jun 14, 2022
77245e7
Fix wrong use of base class functions
MCFlowMace Jun 14, 2022
6fc6619
Update scarab
Jun 14, 2022
ede1326
Nymph_Exe.cc --> Nymph.cc
Jun 14, 2022
09fbe85
Remove try-catch block from Nymph.cc
Jun 14, 2022
e9cfa5d
Fix build bug?
MCFlowMace Jun 14, 2022
013bec6
Merge branch 'nymph2_2/execPort2' into nymph2_2/workshop
Jun 14, 2022
ac7db88
Merge branch 'nymph2_2/workshop' into nymph2_2/py_proc_reg
Jun 14, 2022
e704534
Fix reference getters and setters
MCFlowMace Jun 14, 2022
6017920
Added initial version of ProcessorToolboxPybind.hh; not functional
Jun 14, 2022
46b4483
Add script to demonstrate signal in python
MCFlowMace Jun 14, 2022
18dd6c5
ProcessorToolbox binding code builds
Jun 14, 2022
e372ed3
Add missing members to processor binding
MCFlowMace Jun 14, 2022
babac8d
Merge pull request #45 from project8/nymph2_2/bind-signal
nsoblath Jun 14, 2022
906bf1a
Fix accidental semicolon
MCFlowMace Jun 14, 2022
12bbbe5
Moved Cpp testing to its own namespace, and building a separate library.
Jun 15, 2022
d2d3fd6
Add NymphTesting pybind build
Jun 15, 2022
7bb1f10
Merge branch 'nymph2_2/workshop' into nymph2_2/proctbpybind
Jun 15, 2022
61ab2ed
Add ProcessorToolbox::HasProcessor() and ProcessorToolbox::CouldBuild()
Jun 15, 2022
c63f20c
Added a default value for the constructor/init argument for Processor…
Jun 15, 2022
122f035
Added a test program for the python interface of ProcessorToolbox
Jun 15, 2022
b0569a8
Remove unnecessary comments
MCFlowMace Jun 15, 2022
279b4ff
Turn on the BUILD_TESTING flag for the Python build, and do a verbose…
Jun 15, 2022
880af0f
Use make_unique instead of just creating a new unique_ptr
Jun 15, 2022
fe0ee68
Add basic binding for Slot
MCFlowMace Jun 15, 2022
e5ac3b5
Updated scarab
Jun 15, 2022
646bece
Use new setup for the pybind11 pbuilder function
Jun 15, 2022
71aea46
Merge branch 'nymph2_2/workshop' into nymph2_2/py_proc_reg
Jun 15, 2022
8bb2af6
Merge pull request #47 from project8/nymph2_2/py_proc_reg
nsoblath Jun 15, 2022
50b9a22
Merge branch 'nymph2_2/workshop' into nymph2_2/proctbpybind
Jun 15, 2022
ed207ff
Remove function from Slot binding code
MCFlowMace Jun 15, 2022
7c356ba
Add trampoline for slot binding
MCFlowMace Jun 15, 2022
2e56e4a
Modify NymphPybind for better readability
MCFlowMace Jun 15, 2022
fc33053
Merge branch 'nymph2_2/workshop' into nymph2_2/bind-slot
MCFlowMace Jun 15, 2022
d706638
Update scarab
Jun 15, 2022
74caffd
Finish fixing the pybind11 build using the new cmake function
Jun 15, 2022
f08e6ab
Add function MatchesTo to SlotBase which checks if a signal matches t…
MCFlowMace Jun 15, 2022
d331960
Add MatchesTo override to python binding
MCFlowMace Jun 15, 2022
7b0f4c3
Update scarab
Jun 15, 2022
656814a
Adding binding helper macros
Jun 15, 2022
b93ced2
Adding stream redirects (and removing a debug print line)
Jun 15, 2022
8650366
Add logic to handle the dry run
Jun 15, 2022
4f1aaf0
Add the dry-run option
Jun 15, 2022
eb8df2e
Move option adding to a function in RunNymph.hh/cc
Jun 15, 2022
95ee112
Fix wrong overrides of virtual functions in python bindings
MCFlowMace Jun 15, 2022
9e8334c
Fix bindings include dirs
Jun 15, 2022
db8a634
Update Scarab
Jun 15, 2022
ef6e0dc
Add missing bindings for SignalBase
MCFlowMace Jun 15, 2022
772f82f
Update how python binding is done to follow what's expected in the up…
Jun 15, 2022
252f16d
Merge branch 'nymph2_2/fix-binding-inheritance' into nymph2_2/bind-slot
MCFlowMace Jun 15, 2022
b4bfd18
Add missing include
Jun 15, 2022
5b7168e
Merge pull request #56 from project8/nymph2_2/exenames
nsoblath Jun 15, 2022
37179a7
Fix wrong funtion name in binding of Slot
MCFlowMace Jun 15, 2022
ced1ce1
Merge pull request #54 from project8/nymph2_2/dryrun
nsoblath Jun 15, 2022
3ec9803
Add test for connection of incompatible sig-slot
MCFlowMace Jun 15, 2022
b0e6e53
Merge pull request #53 from project8/nymph2_2/streamredirects
nsoblath Jun 16, 2022
57df205
Merge branch 'nymph2_2/workshop' into nymph2_2/fix-missing-processor-…
Jun 16, 2022
d8cb02f
Put scarab back on the commit it's on in the workshop branch
Jun 16, 2022
f8b9822
Merge pull request #51 from project8/nymph2_2/fix-missing-processor-b…
nsoblath Jun 16, 2022
3870d4c
Moved self-registration and disconnection-upon-deletion into SignalBa…
Jun 16, 2022
ba4b488
Fix for exception test in SignalSlot test
MCFlowMace Jun 16, 2022
29dec57
Merge branch 'nymph2_2/workshop' into nymph2_2/fix-binding-inheritance
MCFlowMace Jun 16, 2022
502efd3
Modify python function name to be string valued in macro
MCFlowMace Jun 16, 2022
131f218
Fix function names again
MCFlowMace Jun 16, 2022
da3600a
Merge pull request #58 from project8/nymph2_2/fix-binding-inheritance
MCFlowMace Jun 16, 2022
5d5e6db
Merge branch 'nymph2_2/workshop' into nymph2_2/bind-slot
MCFlowMace Jun 16, 2022
0924329
Modify python override function names in Slot binding
MCFlowMace Jun 16, 2022
d0ccb57
Fixed threading issue in TestSignalSlot
Jun 16, 2022
27a882f
Merge pull request #52 from project8/nymph2_2/bind-slot
nsoblath Jun 16, 2022
fc2cd3a
Remove unused breakpoint variable from Slot
Jun 16, 2022
fdc843a
Cleanup Slot.hh and switch from boost::function to std::function
Jun 16, 2022
b522d3a
Merge branch 'nymph2_2/workshop' into nymph2_2/bind-slot-derived
MCFlowMace Jun 16, 2022
a223e06
Add missing constructor in signal binding
MCFlowMace Jun 16, 2022
7d915fa
Add new constructor to SlotBase binding
MCFlowMace Jun 16, 2022
31a7588
Replace check for data types based on a helper struct with a new vers…
Jun 16, 2022
a9a6814
Cleanup SlotData and use DataFrame::Has()
Jun 16, 2022
9ba51ea
Remove a debugging printout
Jun 16, 2022
2530683
Add a couple debug messages to Signal to help see when a breakpoint i…
Jun 16, 2022
0ed6725
Merge branch 'nymph2_2/proctbpybind' into nymph2_2/reganddisconnect
Jun 16, 2022
9649e29
Add binding for derived Slot
MCFlowMace Jun 16, 2022
52eb24e
Fixed incomplete initializations
Jun 17, 2022
59c22d7
Cleanup of signal-slot code
Jun 17, 2022
d81f87a
Use unique variable names in tests in case they're affecting each other.
Jun 17, 2022
0a733e6
Need to re-request the references to TestData2; Perhaps a missing inc…
Jun 17, 2022
ecab2dc
Merge nymph2_2/workshop into nymph2_2/reganddisconnect
Jun 17, 2022
ff508ee
Add proper unittest to processor
MCFlowMace Jun 17, 2022
5f09ff1
Add test for registering and creating python processor
MCFlowMace Jun 17, 2022
7e22c11
Fixing slot variable
Jun 17, 2022
b401ae0
Use different TestData2 variables fixes the segfault, for some reason
Jun 17, 2022
4978f50
Remove the assertion in testprocessortoolbox.py that expects to find …
Jun 18, 2022
d3df7cd
Merge pull request #57 from project8/nymph2_2/reganddisconnect
nsoblath Jun 18, 2022
8bc7022
Update ConfigException.hh
nsoblath Dec 27, 2023
80334e1
Use latest versions of linux and macos systems for GHA jobs
Dec 28, 2023
4a5ea42
Update Scarab (should fix sprintf warnings and maybe yaml-cpp lib iss…
Dec 28, 2023
06a1156
Don't attempt to build and install executables if there are none
Dec 28, 2023
27ed29c
Added Service and ServiceToolbox
Dec 29, 2023
7d7e20f
Generalize python version to 3
Dec 29, 2023
693229d
Merge branch 'nymph2_2/workshop' of github.com:project8/nymph into ny…
Dec 29, 2023
e47e430
Allow python tests to fail for now
Dec 29, 2023
d1ec0cf
Merge branch 'nymph2_2/workshop' into nymph2_2/services
Dec 29, 2023
e10eade
Merge pull request #66 from project8/nymph2_2/services
nsoblath Dec 29, 2023
0f8f5d0
Merge pull request #65 from project8/nymph2_2/workshop
nsoblath Jan 23, 2024
f0f2000
Scarab updated to v3.12.0
nsoblath Aug 21, 2025
6e4aaec
Update the GHA workflow
nsoblath Aug 21, 2025
28a2711
Put scarab on the logger feature branch
nsoblath Aug 21, 2025
1cd14d0
Updated Dockerfile structure and boost dependencies
nsoblath Aug 25, 2025
46d8780
Updated Catch2 to the v3 structure
nsoblath Aug 25, 2025
9912a12
Remove cereal from build and non-useful line from setup.sh
nsoblath Aug 25, 2025
648eef4
Merge branch 'nymph2_2/develop' into nymph2_2/bind-slot-derived
nsoblath Aug 25, 2025
ff197ff
Scarab on develop branch
nsoblath Aug 25, 2025
b733e71
Default shell is bash
nsoblath Aug 25, 2025
3e068eb
Hopefully fixed prefix issue; renamed NYMPH_BUILD_PREFIX to NYMPH_PREFIX
nsoblath Aug 25, 2025
8ba2b98
Merge branch 'nymph2_2/develop' into nymph2_2/bind-slot-derived
nsoblath Aug 25, 2025
2c01802
Hopefully fixing docker test testing
nsoblath Aug 26, 2025
d699753
Merge branch 'nymph2_2/develop' into nymph2_2/bind-slot-derived
nsoblath Aug 26, 2025
e63d6d8
Merge branch 'nymph2_2/develop' into nymph2_2/more-unittests
nsoblath Aug 26, 2025
290c106
Merge pull request #60 from project8/nymph2_2/bind-slot-derived
nsoblath Aug 26, 2025
fb77313
Merge pull request #63 from project8/nymph2_2/more-unittests
nsoblath Aug 26, 2025
ab18dd6
Move version definition to its own file
nsoblath Sep 9, 2025
50258fd
Setup the python-only Nymph package
nsoblath Sep 9, 2025
6f460c8
Add a dev Docker stage
nsoblath Sep 9, 2025
61619c7
Change _nymph to nymph_bindings
nsoblath Sep 9, 2025
d96a474
Move testing files around to use same structure as the packages thems…
nsoblath Sep 9, 2025
a166190
Imported example derived repo from tettigoniidae and adapted to use N…
nsoblath Sep 9, 2025
f89f063
Flesh out cmake command in CppRepo and add CppRepo build to build.yaml
nsoblath Sep 9, 2025
d4bcb6a
Remove system from boost components (not required and doesn't work wi…
nsoblath Sep 9, 2025
132d7c7
Updated Scarab to v3.13.1
nsoblath Sep 9, 2025
eddd2ec
Turn off Nymph testing while building CppRepo
nsoblath Sep 9, 2025
0a0c1c0
Test extraction of version
nsoblath Sep 9, 2025
3e1f705
Set environment variables correctly
nsoblath Sep 9, 2025
2448b1b
Fix missing VERSION file
nsoblath Sep 9, 2025
1b4b2a2
Debugging boost components
nsoblath Sep 9, 2025
ad1031a
Removing debug messages
nsoblath Sep 9, 2025
934fde7
Implement an option for the nymph tag in cpprepo
nsoblath Sep 9, 2025
824bee2
Debugging Nymph_TAG option
nsoblath Sep 9, 2025
2564e8f
Adding the cpp build to the python build
nsoblath Sep 9, 2025
de69c71
Fixing pip install flag
nsoblath Sep 10, 2025
c8385ac
Add tmate for debugging
nsoblath Sep 10, 2025
bfacd97
Install nymph bindings in standard python location
nsoblath Sep 10, 2025
7e5fe77
Fixing missing backslash
nsoblath Sep 10, 2025
7d80f6e
Getting the python testing running
nsoblath Sep 10, 2025
d2e26fa
Added Examples/PyRepo with a simple hello-world function
nsoblath Sep 15, 2025
6944b50
Minor updates to example build scripts
nsoblath Sep 15, 2025
ec66a5f
Add PyRepo egg-info to .gitignore
nsoblath Sep 15, 2025
0bdc2da
Merge pull request #70 from project8/nymph2_2/cppexample
nsoblath Sep 15, 2025
07e0694
Incomplete work on a CL processor check
nsoblath Sep 15, 2025
c12d2cc
Updated scarab (on a feature branch)
nsoblath Sep 17, 2025
172414f
Add processor checking functions to RunNymph
nsoblath Sep 17, 2025
c2c6b23
Use processor checking in the Nymph executable
nsoblath Sep 17, 2025
20f49ad
Scarab updated to v3.13.2 (on develop)
nsoblath Sep 17, 2025
4e9568e
Merge pull request #71 from project8/nymph2_2/proccheck
nsoblath Sep 18, 2025
401861f
Added C++ Hello World processor
nsoblath Sep 23, 2025
e62a403
Restructured Python's __init__.py's and added processor.Processor, an…
nsoblath Sep 23, 2025
6dc24c2
Added processor visibility test in C++
nsoblath Sep 23, 2025
09cae58
Adjusted Python testing and added testing in Python/nymph
nsoblath Sep 23, 2025
f3c677b
Add a custom registrar for processors that uses the factory from Proc…
nsoblath Oct 4, 2025
34ac1db
Renamed pybinding processor registrar file; use the dedicated process…
nsoblath Oct 4, 2025
2154e62
Updated Scarab to v3.13.3 (develop)
nsoblath Oct 7, 2025
6c1507e
Move the splash text to a callback
nsoblath Oct 7, 2025
f044328
Merge branch 'nymph2_2/develop' into nymph2_2/procvisibility
nsoblath Oct 7, 2025
9bb712e
Cleanup
nsoblath Oct 7, 2025
2240095
Initial step towards python proc visibility
nsoblath Oct 7, 2025
e8139ce
Python import testing
nsoblath Oct 8, 2025
b0771c6
Preliminary work testing python proc visibility in C++
nsoblath Oct 8, 2025
d2deecb
Reverting a small change to a boost flag
nsoblath Oct 8, 2025
377a514
Fixed the import test
nsoblath Oct 8, 2025
efd421f
Improved processor visibility test for python processors from C++
nsoblath Oct 8, 2025
003686f
Fixed up calls within nymph_bindings tests
nsoblath Oct 9, 2025
7f911f8
Merge pull request #72 from project8/nymph2_2/procvisibility
nsoblath Oct 9, 2025
029eb03
Fixing a couple of class name and inclusion issues in signals/slots
nsoblath Nov 12, 2025
7aad0b7
Give ServiceToolbox pointer to Processors via ProcessorToolbox; SRC h…
nsoblath Nov 19, 2025
804a953
Fixing order of toolbox creation and configuration
nsoblath Nov 19, 2025
c598dc7
Removing debug print
nsoblath Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 31 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#general:
*.swp
*.o
*.so
*.a
*.dylib

#mac
.DS_Store

#from Eclipse
.project
.cproject

#from cmake
CMakeCache.txt
CMakeFiles/
Makefile
build*/
cbuild*/
cmake_install.cmake
*Dict.h
*Dict.cxx
Documentation/ReferenceGuide/Doxyfile
Source/Main/ExtractEvents
Source/Main/SimpleElectronHunt
Source/Applications/Main/SimpleElectronHunt
install_manifest.txt

# from emacs
*~
257 changes: 257 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
name: Build and Test Nymph

on:
pull_request:
push:
branches: [main, develop]
tags: ['*']

env:
Nymph_BUILD_NYMPH_EXE: ON
Nymph_ENABLE_EXECUTABLES: ON
Nymph_ENABLE_PYTHON: OFF
Nymph_ENABLE_TESTING: ON
Nymph_SINGLETHREADED: OFF
Nymph_BUILD_TYPE: Debug
Nymph_TAG: test
NARG: 2

jobs:

docker_build:
name: Build and Test in Docker

runs-on: ubuntu-latest

steps:

- name: Checkout the repo
uses: actions/checkout@v4
with:
submodules: recursive

- name: Build
id: build
uses: docker/build-push-action@v5
with:
context: .
push: false
load: true
build-args: |
img_repo=${{ env.BASE_IMAGE_REPO }}
img_tag=${{ env.BASE_IMAGE_TAG }}
build_type=${{ env.Nymph_BUILD_TYPE }}
build_tests_exe=${{ env.Nymph_ENABLE_TESTING }}
nymph_tag=${{ env.Nymph_TAG }}
narg=${{ env.NARG }}
platforms: linux/amd64
tags: ${{ env.Nymph_TAG }}

- name: Unit Tests
run: |
docker run --rm ${{ env.Nymph_TAG }} bash -c "/usr/local/p8/nymph/${{ env.Nymph_TAG }}/bin/RunTests"


build_cpp:
name: Build and Test Cpp

runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest]
python-version: [3]

steps:

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Mac Dependencies
if: startsWith(matrix.os, 'macos') # Mac only
run: |
brew install \
boost \
rapidjson \
yaml-cpp
sudo mkdir -p /usr/local/include && \
sudo chown -R $(whoami) /usr/local/include
sudo mkdir -p /usr/local/lib && \
sudo chown -R $(whoami) /usr/local/lib
sudo mkdir -p /usr/local/bin && \
sudo chown -R $(whoami) /usr/local/bin
sudo mkdir -p /usr/local/share && \
sudo chown -R $(whoami) /usr/local/share
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
cmake -DPYBIND11_TEST=FALSE ..
make -j${{ env.NARG }} install

- name: Linux Dependencies
if: startsWith(matrix.os, 'ubuntu') # Linux only
run: |
sudo apt-get update
sudo apt-get install -yq \
libboost-all-dev \
libyaml-cpp-dev \
rapidjson-dev
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
sudo cmake -DPYBIND11_TEST=FALSE ..
sudo make -j${{ env.NARG }} install
cd ../..
pip install "pybind11[global]"

- name: Configure CMake
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=${Nymph_BUILD_TYPE} \
-DNymph_BUILD_NYMPH_EXE=${Nymph_BUILD_NYMPH_EXE} \
-DNymph_ENABLE_EXECUTABLES=${Nymph_ENABLE_EXECUTABLES} \
-DNymph_ENABLE_PYTHON=${Nymph_ENABLE_PYTHON} \
-DNymph_ENABLE_TESTING=${Nymph_ENABLE_TESTING} \
-DNymph_SINGLETHREADED=${Nymph_SINGLETHREADED} \
..

- name: CMake Build
run: |
cd build
make -j${{ env.NARG }} install

- name: Run tests
run: |
cd build
Testing/RunTests

- name: Build CppRepo Example
env:
Nymph_ENABLE_TESTING: OFF
Nymph_TAG: nymph2_2/cppexample
run: |
cd Examples/CppRepo
./BUILD_ME.sh

build_python:
name: Build and Test Python

runs-on: ${{ matrix.os }}

env:
Nymph_ENABLE_PYTHON: ON

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest]
python-version: [3]

steps:

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Mac Dependencies
if: startsWith(matrix.os, 'macos') # Mac only
run: |
brew install \
boost \
rapidjson \
yaml-cpp
sudo mkdir -p /usr/local/include && \
sudo chown -R $(whoami) /usr/local/include
sudo mkdir -p /usr/local/lib && \
sudo chown -R $(whoami) /usr/local/lib
sudo mkdir -p /usr/local/bin && \
sudo chown -R $(whoami) /usr/local/bin
sudo mkdir -p /usr/local/share && \
sudo chown -R $(whoami) /usr/local/share
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
cmake -DPYBIND11_TEST=FALSE ..
make -j${{ env.NARG }} install

- name: Linux Dependencies
if: startsWith(matrix.os, 'ubuntu') # Linux only
run: |
sudo apt-get update
sudo apt-get install -yq \
libboost-all-dev \
libyaml-cpp-dev \
rapidjson-dev
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
sudo cmake -DPYBIND11_TEST=FALSE ..
sudo make -j${{ env.NARG }} install

- name: Build Nymph/Cpp
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=${Nymph_BUILD_TYPE} \
-DNymph_BUILD_NYMPH_EXE=${Nymph_BUILD_NYMPH_EXE} \
-DNymph_ENABLE_EXECUTABLES=${Nymph_ENABLE_EXECUTABLES} \
-DNymph_ENABLE_PYTHON=${Nymph_ENABLE_PYTHON} \
-DNymph_ENABLE_TESTING=${Nymph_ENABLE_TESTING} \
-DNymph_SINGLETHREADED=${Nymph_SINGLETHREADED} \
-DPBUILDER_PY_INSTALL_IN_SITELIB=TRUE \
..
make -j${{ env.NARG }} install

- name: Install Nymph/Python
run: |
env
pip -v install -e .

- name: Run Tests
run: |
cd Testing/Python/Bindings
python -m unittest discover -v

# eventually include these tests
# cd ../nymph
# python -m unittest discover -v

- name: Build PyRepo Example
env:
Nymph_ENABLE_TESTING: OFF
Nymph_ENABLE_PYTHON: ON
Nymph_TAG: nymph2_2/cppexample
run: |
cd Examples/PyRepo
./BUILD_ME.sh
hello-world


# For debugging
- name: Setup tmate session
if: ${{ ! success() }}
uses: mxschmitt/action-tmate@v3

60 changes: 39 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,31 +1,49 @@
#general:
*.swp
# from emacs
*~

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.a
*.dylib
*.dll

#mac
.DS_Store
# Fortran module files
*.mod
*.smod

#from Eclipse
# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Eclipse
.project
.cproject
.settings/

#from cmake
CMakeCache.txt
CMakeFiles/
Makefile
# VSCode
.vscode/

# Build directories
build*/
cbuild*/
cmake_install.cmake
*Dict.h
*Dict.cxx
Documentation/ReferenceGuide/Doxyfile
Source/Main/ExtractEvents
Source/Main/SimpleElectronHunt
Source/Applications/Main/SimpleElectronHunt
install_manifest.txt

# from emacs
*~
# Python Package
dist*/
Python/*.egg-info
Examples/PyRepo/*.egg-info
__pycache__
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "Scarab"]
path = Scarab
url = https://github.com/project8/scarab
[submodule "External/cereal"]
path = External/cereal
url = https://github.com/USCiLab/cereal.git
2 changes: 2 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ Authors and Copyright Holders for Nymph
Individuals
-----------
Noah S. Oblath [1]
Benjamin H. LaRoque [2]


Institutions
------------
1. Pacific Northwest National Laboratory, Richland, WA
2. University of California, Santa Barbara, CA
Loading
Loading