Skip to content

Commit b7af3ff

Browse files
committed
Merge branch 'development' into experimental
2 parents 5b0b179 + 292391a commit b7af3ff

File tree

15 files changed

+392
-278
lines changed

15 files changed

+392
-278
lines changed

.classpath

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

.github/workflows/ci.yml

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,47 @@ on:
1212
jobs:
1313
build_and_test:
1414

15-
runs-on: ubuntu-latest
15+
runs-on: ${{ matrix.runs-on }}
1616
strategy:
17+
fail-fast: false
1718
matrix:
18-
java: [ '8' ] # only java 8 for experimental branch...
19+
java: [ '8', '11', '16', '17' ]
20+
runs-on: [ubuntu-latest, macos-11, windows-2019 ]
1921

20-
name: Test on Java ${{ matrix.Java }}
22+
name: Test on Java ${{ matrix.Java }} on ${{ matrix.runs-on }}
2123
steps:
2224
- uses: actions/checkout@v2
2325
- name: Set up JDK ${{ matrix.Java }}
2426
uses: actions/setup-java@v2
2527
with:
2628
java-version: ${{ matrix.Java }}
2729
distribution: 'adopt'
28-
- name: Install jNeuroML
30+
31+
- name: Install using getNeuroML.py (non Win)
32+
if: ${{ matrix.runs-on != 'windows-2019' }}
2933
run: |
30-
export main_repo_branch=${GITHUB_REF##*/}
34+
export main_repo_branch=${{env.main_repo_branch}}
35+
if [[ ${main_repo_branch} != "master" && ${main_repo_branch} != "development" && ${main_repo_branch} != "experimental" && ${main_repo_branch} != *"osb"* ]]; then main_repo_branch=development ; fi
3136
echo Using branch $main_repo_branch
32-
python getNeuroML.py $main_repo_branch # will call mvn install on this & other repos
3337
34-
- name: Further tests
38+
python getNeuroML.py $main_repo_branch -dont_switch_jneuroml_branch # will call mvn install on this & other repos
39+
mvn dependency:tree
40+
./jnml -v
41+
42+
- name: Install using getNeuroML.py (Win)
43+
if: ${{ matrix.runs-on == 'windows-2019' }}
44+
run: |
45+
$env:main_repo_branch=$env:GITHUB_REF_NAME
46+
if ( $env:main_repo_branch -ne "master" -and $env:main_repo_branch -ne "development" -and $env:main_repo_branch -ne "experimental" -and $env:main_repo_branch -notlike '*osb*' ) { $env:main_repo_branch="development" }
47+
echo "Using branch $env:main_repo_branch..."
48+
49+
python getNeuroML.py $env:main_repo_branch -dont_switch_jneuroml_branch # will call mvn install on this & other repos
50+
51+
mvn dependency:tree
52+
.\jnml.bat -v
53+
54+
- name: Further tests (non Win)
55+
if: ${{ matrix.runs-on != 'windows-2019' }}
3556
run: |
3657
pwd
3758
ls -alt
@@ -45,12 +66,26 @@ jobs:
4566
./jnml ../NeuroML2/LEMSexamples/LEMS_NML2_Ex9_FN.xml -cvode
4667
./jnml ../NeuroML2/LEMSexamples/LEMS_NML2_Ex9_FN.xml -matlab
4768
./jnml ../NeuroML2/LEMSexamples/LEMS_NML2_Ex9_FN.xml -dlems
69+
./jnml ../NeuroML2/LEMSexamples/LEMS_NML2_Ex9_FN.xml -eden
70+
./jnml ../NeuroML2/LEMSexamples/regression-tests/LEMS_NML2_Ex5_DetCell_unformatted.xml -nogui
4871
./jnml ../NeuroML2/examples/NML2_SimpleMorphology.nml -svg
4972
ls -alt ../NeuroML2/examples
5073
ls -alt ../NeuroML2/LEMSexamples
51-
52-
53-
- name: Version info
74+
75+
- name: Further tests (Win)
76+
if: ${{ matrix.runs-on == 'windows-2019' }}
5477
run: |
55-
mvn dependency:tree
56-
./jnml -v
78+
pwd
79+
mkdir results
80+
.\jnml.bat -validate ..\NeuroML2\examples\NML2_FullNeuroML.nml # Test validate
81+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -nogui # Test running with jLEMS
82+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex5_DetCell.xml -nogui
83+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -neuron
84+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -brian
85+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -sedml
86+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -cvode
87+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -matlab
88+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -dlems
89+
.\jnml.bat ..\NeuroML2\LEMSexamples\LEMS_NML2_Ex9_FN.xml -eden
90+
.\jnml.bat ..\NeuroML2\LEMSexamples\regression-tests\LEMS_NML2_Ex5_DetCell_unformatted.xml -nogui
91+
.\jnml.bat ..\NeuroML2\examples\NML2_SimpleMorphology.nml -svg

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@ src/main/java/META-INF/MANIFEST.MF
1111
.DS_Store
1212
*.*~
1313
*.log
14+
.classpath
15+
.factorypath
16+
.project
17+
.settings/

.project

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

.settings/org.eclipse.core.resources.prefs

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

.settings/org.eclipse.jdt.core.prefs

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

.settings/org.eclipse.m2e.core.prefs

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

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ dist: xenial
33
language: java
44

55
jdk:
6-
#- oraclejdk11
6+
- oraclejdk11
77

88
- openjdk8
99
#- openjdk10 # Some non deterministic recurring error with jdk10...
10-
#- openjdk11
10+
- openjdk11
1111

1212
install:
1313
- export main_repo_branch=$TRAVIS_BRANCH

README.md

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
jNeuroML
22
========
33

4-
There are a number of repositories in active development under GitHub for handling [NeuroML](https://github.com/NeuroML)
5-
and [LEMS](https://github.com/LEMS) with Java. To make it easier to access all of this functionality, we've created a single package, jNeuroML, which allows access to most of this functionality through a simple command line interface and requires minimal installation.
4+
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4627568.svg)](https://doi.org/10.5281/zenodo.4627568)
5+
[![Java CI with Maven](https://github.com/NeuroML/jNeuroML/actions/workflows/ci.yml/badge.svg)](https://github.com/NeuroML/jNeuroML/actions/workflows/ci.yml)
6+
[![GitHub](https://img.shields.io/github/license/NeuroML/jNeuroML)](https://github.com/NeuroML/jNeuroML/blob/master/LICENSE.lesser)
7+
[![GitHub pull requests](https://img.shields.io/github/issues-pr/NeuroML/jNeuroML)](https://github.com/NeuroML/jNeuroML/pulls)
8+
[![GitHub issues](https://img.shields.io/github/issues/NeuroML/jNeuroML)](https://github.com/NeuroML/jNeuroML/issues)
9+
[![GitHub Org's stars](https://img.shields.io/github/stars/NeuroML?style=social)](https://github.com/NeuroML)
10+
[![Twitter Follow](https://img.shields.io/twitter/follow/NeuroML?style=social)](https://twitter.com/NeuroML)
11+
[![Gitter](https://badges.gitter.im/NeuroML/community.svg)](https://gitter.im/NeuroML/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
12+
13+
14+
There are a number of repositories in active development under GitHub for handling [NeuroML](https://github.com/NeuroML)
15+
and [LEMS](https://github.com/LEMS) with Java. To make it easier to access all of this functionality, we've created a single package, jNeuroML, which allows access to most of this functionality through a simple command line interface and requires minimal installation.
616

717
jNeuroML can:
818

@@ -21,6 +31,18 @@ You can also check out the most recent verson of the jar file using:
2131
svn checkout svn://svn.code.sf.net/p/neuroml/code/jNeuroMLJar
2232
cd jNeuroMLJar
2333

34+
35+
### Fedora
36+
37+
The [NeuroFedora](https://neuro.fedoraproject.org) community initiative provides jNeuroML for use on the [Fedora Linux Distribution](https://getfedora.org).
38+
Fedora users can install jNeuroML using the following commands:
39+
40+
sudo dnf copr enable @neurofedora/neurofedora-extra
41+
sudo dnf install jneuroml
42+
43+
Please see the [project documentation](https://docs.fedoraproject.org/en-US/neurofedora/copr/) for more information.
44+
45+
2446
Usage
2547
-----
2648

@@ -32,8 +54,8 @@ Typing *./jnml* (or *jnml.bat* on Windows) will list the options available. Some
3254
./jnml MyLEMS.xml -graph (generate png of structure of LEMS model using GraphViz)
3355
./jnml MyLEMS.xml -neuron (generate code to run on the NEURON simulator)
3456

35-
Export and import features for [NEURON](http://www.neuron.yale.edu/neuron/), [SBML](http://sbml.org),
36-
[Brian](http://www.briansimulator.org/) etc. are under active development (see https://github.com/NeuroML/org.neuroml.export
57+
Export and import features for [NEURON](http://www.neuron.yale.edu/neuron/), [SBML](http://sbml.org),
58+
[Brian](http://www.briansimulator.org/) etc. are under active development (see https://github.com/NeuroML/org.neuroml.export
3759
and https://github.com/NeuroML/org.neuroml.import).
3860

3961
**Note:**
@@ -44,42 +66,34 @@ Adding the environment variable *JNML_HOME*, pointing to the *jNeuroML* folder,
4466
Getting the source for jNeuroML
4567
-------------------------------
4668

47-
If you prefer to clone all of the individual repositories and build the jNeuroML application yourself,
69+
If you prefer to clone all of the individual repositories and build the jNeuroML application yourself,
4870
use the [getNeuroML.py](https://github.com/NeuroML/jNeuroML/blob/master/getNeuroML.py) utility in the jNeuroML repo:
4971

5072
git clone git://github.com/NeuroML/jNeuroML.git neuroml_dev/jNeuroML
5173
cd neuroml_dev/jNeuroML
5274
python getNeuroML.py
5375

54-
This will clone ~11 repos for NML2 & LEMS (including Python based libraries) into *neuroml_dev/* and compile
76+
This will clone ~11 repos for NML2 & LEMS (including Python based libraries) into *neuroml_dev/* and compile
5577
the Java based ones using Maven (download [here](http://maven.apache.org/) or use package managers for Linux (e.g. apt-get install maven) or Mac (brew install maven)). The full process may take 5-10 mins on first installation, but subsequently running:
5678

5779
git pull
5880
python getNeuroML.py
5981

60-
in the jNeuroML folder will get the stable version of each repo & compile using Maven if necessary.
82+
in the jNeuroML folder will get the stable version of each repo & compile using Maven if necessary.
6183

6284
**To access the very latest version** (the [development](https://github.com/NeuroML/jNeuroML/tree/development) branches of the GitHub repos) use:
6385

6486
python getNeuroML.py clean
6587
python getNeuroML.py development
6688

67-
Use of Maven is a great way to manage versions of applications being developed in distributed repositories,
68-
and will make it easy to use selected parts of this for different Java applications. For example, these packages
89+
Use of Maven is a great way to manage versions of applications being developed in distributed repositories,
90+
and will make it easy to use selected parts of this for different Java applications. For example, these packages
6991
will be used in various ways to provide NeuroML/LEMS support in [neuroConstruct](http://www.neuroConstruct.org) and for handling NeuroML on the [Open Source Brain website](http://www.OpenSourceBrain.org).
7092

7193
Prefer Python?
7294
--------------
7395

7496
If you prefer using/installing/coding in Python, try out [pyNeuroML](https://github.com/NeuroML/pyNeuroML). Much of the functionality of jNeuroML is bundled inside pyNeuroML and can be accessed with a command line utility (*pynml*) with similar usage as *jnml*.
7597

76-
[![Build Status](https://travis-ci.org/NeuroML/jNeuroML.png?branch=master)](https://travis-ci.org/NeuroML/jNeuroML)
7798

7899
This code is distributed under the terms of the GNU Lesser General Public License.
79-
80-
81-
82-
83-
84-
85-

0 commit comments

Comments
 (0)