Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* text=auto eol=lf
*.cu text eol=lf
*.py text eol=lf
*.md text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
70 changes: 0 additions & 70 deletions .github/workflows/CI-daily.yml

This file was deleted.

92 changes: 33 additions & 59 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# This workflow installs Python dependencies and runs the test suite across
# operating systems on every push/PR, and additionally runs a JAX-version
# compatibility matrix on a daily schedule.
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Continuous Integration
Expand All @@ -8,108 +10,80 @@ on:
branches:
- main
pull_request:
schedule:
# Runs at 00:00 UTC every day. See https://crontab.guru for cron syntax.
- cron: '0 0 * * *'
workflow_dispatch:


permissions:
contents: read # to fetch code
actions: write # to cancel previous workflows

# This is what will cancel the workflow
# Cancel in-progress runs for the same ref
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true


jobs:
test_linux:
runs-on: ubuntu-latest
# Cross-platform test suite on push, pull request, and manual runs.
test:
if: github.event_name != 'schedule'
name: Test (${{ matrix.os }}, Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
python-version: [ "3.13" ]

steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.13.1
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v6
- name: Print concurrency group
run: echo '${{ github.workflow }}-${{ github.ref }}'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip cache purge
python -m pip install --upgrade pip setuptools --no-cache-dir
python -m pip install -r requirements.txt --no-cache-dir
python -m pip install pytest --no-cache-dir
pip install . --no-cache-dir
python -m pip install --upgrade pip setuptools --no-cache-dir
python -m pip install -r requirements.txt --no-cache-dir
python -m pip install pytest --no-cache-dir
python -m pip install . --no-cache-dir
- name: Test with pytest
run: |
pytest BrainX/


test_macos:
runs-on: macos-latest
# Daily / manual JAX-version compatibility matrix on Linux.
test_jax_compatibility:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
name: JAX compat (jax ${{ matrix.jax-version || 'latest' }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [ "3.13" ]
jax-version: [ "0.7.1", "0.8.0", "0.9.0", "" ]

steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.13.1
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v6
- name: Print concurrency group
run: echo '${{ github.workflow }}-${{ github.ref }}'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip cache purge
python -m pip install --upgrade pip setuptools --no-cache-dir
python -m pip install -r requirements.txt --no-cache-dir
python -m pip install pytest --no-cache-dir
pip install . --no-cache-dir
python -m pip install --upgrade pip setuptools
python -m pip install -r requirements.txt
python -m pip install pytest
if [ "${{ matrix.jax-version }}" == "" ]; then
python -m pip install jax || exit 1
else
python -m pip install jax==${{ matrix.jax-version }} || exit 1
fi
python -m pip install . || exit 1
- name: Test with pytest
run: |
pytest BrainX/


test_windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: [ "3.13" ]

steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.13.1
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v6
- name: Print concurrency group
run: echo '${{ github.workflow }}-${{ github.ref }}'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip cache purge
python -m pip install --upgrade pip setuptools --no-cache-dir
python -m pip install -r requirements.txt --no-cache-dir
python -m pip install pytest --no-cache-dir
pip install . --no-cache-dir
- name: Test with pytest
run: |
pytest BrainX/

2 changes: 1 addition & 1 deletion .github/workflows/Publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
python-version: '3.13'

- name: Install build tooling
run: |
Expand Down
4 changes: 2 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
version: 2

build:
os: "ubuntu-20.04"
os: "ubuntu-24.04"
tools:
python: "3.12"
python: "3.14"

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
2 changes: 1 addition & 1 deletion BrainX/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@
# -*- coding: utf-8 -*-


__version__ = "2026.3.12"
__version__ = "2026.6.8"
__version_info__ = tuple(map(int, __version__.split(".")))
Empty file added BrainX/py.typed
Empty file.
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,58 @@



## v2026.6.8

This release ships inline type information (PEP 561), consolidates the continuous
integration workflows, completes the repository rename to `brainx`, and refreshes
the pinned component versions.

- **Package Dependencies:**
- [`jax<=0.10.1,>=0.6.0`](https://pypi.org/project/jax/) ↗️ (raised upper bound)
- [`brainpy==2.7.8`](https://pypi.org/project/brainpy/2.7.8/) ↗️
- [`brainunit==0.3.2`](https://pypi.org/project/brainunit/0.3.2/) ↗️
- [`brainstate==0.4.0`](https://pypi.org/project/brainstate/0.4.0/) ↗️
- [`brainevent==0.1.0`](https://pypi.org/project/brainevent/0.1.0/) ↗️
- [`braintools==0.1.9`](https://pypi.org/project/braintools/0.1.9/) ↗️
- [`braintrace==0.2.0`](https://pypi.org/project/braintrace/0.2.0/) ↗️
- [`braincell==0.0.8`](https://pypi.org/project/braincell/0.0.8/)
- [`brainpy-state==0.0.4`](https://pypi.org/project/brainpy-state/0.0.4/)
- [`brainmass==0.0.5`](https://pypi.org/project/brainmass/0.0.5/)
- [`pinnx==0.0.3`](https://pypi.org/project/pinnx/0.0.3/)

- **Typing:**
- Added a [PEP 561](https://peps.python.org/pep-0561/) `py.typed` marker so that
downstream type checkers (mypy, pyright) treat `BrainX` as a typed package
- Declared `py.typed` as package data in `pyproject.toml` so it ships in the wheel

- **Continuous Integration:**
- Merged the push/pull-request workflow and the scheduled workflow into a single
`CI.yml`
- The cross-platform test suite (Linux, macOS, Windows) runs on push, pull
request, and manual dispatch
- A JAX-version compatibility matrix (`0.7.1`, `0.8.0`, `0.9.0`, and latest) runs
on a daily schedule and on manual dispatch

- **Repository:**
- Renamed the GitHub repository from `brain-modeling-ecosystem` to `brainx`;
updated all source, documentation, and packaging URLs accordingly

- **Documentation:**
- Corrected the "Open in Colab/Kaggle" badges in every example notebook to target
their actual paths on the `main` branch
- Replaced the logo and favicon with hosted WebP assets and removed the bundled
3.5 MB `plotly.js`
- Removed unused static assets (legacy PWA manifest, service worker, and stale
images)

- **README:**
- Fixed the BrainTrace link, which previously pointed at the renamed `brainscale`
repository
- Added PINNx to the list of ecosystem components
- Replaced the broken Read the Docs badge with Documentation and License badges



## v2026.3.12

This release updates package dependencies and drops Python 3.10 support.
Expand Down
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
# Brain Simulation Ecosystem (BrainX)

[![PyPI version](https://img.shields.io/pypi/v/brainx)](https://pypi.org/project/brainx/)
![Read the Docs](https://img.shields.io/readthedocs/brainmodeling)
[![Continuous Integration](https://github.com/chaobrain/brain-modeling-ecosystem/actions/workflows/CI.yml/badge.svg)](https://github.com/chaobrain/brain-modeling-ecosystem/actions/workflows/CI.yml)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/chaobrain/brainx/blob/main/LICENSE)
[![Documentation](https://img.shields.io/badge/docs-brainx.chaobrain.com-blue)](https://brainx.chaobrain.com)
[![Continuous Integration](https://github.com/chaobrain/brainx/actions/workflows/CI.yml/badge.svg)](https://github.com/chaobrain/brainx/actions/workflows/CI.yml)


<p align="center">
<img alt="Header image of Brain Modeling Ecosystem." src="https://raw.githubusercontent.com/chaobrain/brain-modeling-ecosystem/main/docs/_static/bdp-ecosystem.png" width=50%>
<img alt="Header image of Brain Modeling Ecosystem." src="https://brainx.chaobrain.com/images/brainx-ecosystem.webp" width=50%>
</p>

## Overview

The BrainX ecosystem provides comprehensive framework for brain simulation and modeling.
The BrainX ecosystem provides a comprehensive framework for brain simulation and modeling.
It provides tools and libraries for researchers to model, simulate, train, and analyze neural systems at different
scales.

Expand All @@ -36,12 +37,14 @@ scales.

- [BrainEvent](https://github.com/chaobrain/brainevent): Enabling event-driven computations in brain dynamics.

- [BrainTrace](https://github.com/chaobrain/brainscale): Enabling scalable online learning for brain dynamics: $O(N)$
complexity for SNNs, and $O(N^2)$ for RNN computations.
- [BrainTrace](https://github.com/chaobrain/braintrace): Eligibility trace-based online learning for brain dynamics:
$O(N)$ complexity for SNNs and $O(N^2)$ for RNN computations.

- [BrainTools](https://github.com/chaobrain/braintools): Commonly used tools for brain dynamics programming, for example
checkpointing.

- [PINNx](https://github.com/chaobrain/pinnx): Physics-informed neural networks for scientific machine learning in JAX.

- More components may be added in the future.

## Installation
Expand Down Expand Up @@ -78,8 +81,8 @@ pip install BrainX[tpu] -U
For development, you might want to clone the repository and install it in editable mode:

```bash
git clone https://github.com/chaobrain/brain-modeling-ecosystem.git
cd brain-modeling-ecosystem
git clone https://github.com/chaobrain/brainx.git
cd brainx
pip install -e .
```

Expand All @@ -100,15 +103,15 @@ This project is licensed under the Apache License, Version 2.0. See the [LICENSE
## Citation

If you use the BrainX Ecosystem in your research, please cite it appropriately. Refer to
the [citation guide](https://brainx.chaobrain.com/citation.html) on our documentation portal.
the [citation guide](https://brainx.chaobrain.com/research/papers-about-brainx/) on our documentation portal.

## Support

If you have questions, encounter issues, or need support, please:

* Check the [documentation](https://brainx.chaobrain.com).
* Search the [existing issues](https://github.com/chaobrain/brain-modeling-ecosystem/issues).
* [Open a new issue](https://github.com/chaobrain/brain-modeling-ecosystem/issues/new/choose) if your problem is not
* Search the [existing issues](https://github.com/chaobrain/brainx/issues).
* [Open a new issue](https://github.com/chaobrain/brainx/issues/new/choose) if your problem is not
addressed.
* Contact us via email: `chao.brain@qq.com`.

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Reporting a bug in Brain Modeling Ecosystem

Report security bugs in BrainPy via [Github Issue](https://github.com/chaobrain/brainmodeling/issues).
Report security bugs in BrainPy via [Github Issue](https://github.com/chaobrain/brainx/issues).

Normally your report will be acknowledged within 5 days, and you'll receive a more detailed response
to your report within 10 days indicating the next steps in handling your submission. These timelines
Expand Down
Binary file removed docs/_static/bdp-ecosystem.png
Binary file not shown.
Binary file removed docs/_static/book.png
Binary file not shown.
Loading
Loading