Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drafting release of v0.10.0 #2380

Merged
merged 8 commits into from
Aug 9, 2024
Merged
Show file tree
Hide file tree
Changes from 5 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
2 changes: 1 addition & 1 deletion .github/workflows/build-pip-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: "recursive"
submodules: recursive
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why removed ""? a sign for merging child branches?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, all of the checkouts are recursive, i.e. they will descend into submodules (recursively!) and fetch those in addition. However, in all other instances we don't use ", so I removed them here, too.

path: arbor
- name: Make full tarball
run: |
Expand Down
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
# v0.10.0 (*08.08.2024*)

## Major Changes since v0.9.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bravo!!!

* Automatic network generation from high-level specifications.
* Units at the user interface including scaling and conversion.
* Morphologies are now loaded through a unified interface, bundling morphology, meta data, and segment tree.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sentence reads odd to me

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, maybe use 'metadata' to be consistent?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes


## Internal Updates

* Documentation overhaul
* Performance improvements
- Label resolution uses hashes instead of strings
- Spike delivery is now up to 30% faster leading
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sentence reads odd to me

- Load balancing
* Fixes
- Better support for source builds on MacOS (aarch64)
- `modcc` no longer allows internal variables (`v`, `celsius`, ...) as `ASSIGNED`
- Better support for raw (C++) mechanisms
* MC cells are now cable cells
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is MC cells?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stands (stood?) for Multi-Compartment as in mc_cell_group. However, all text and interface calls them cable. Thus we removed this inconsistency by renaming the code. It's purely cosmetic.


## Breaking changes
* Return values of all morphology loaders have changed.
* Raw (segment tree) loaders removed.
* Support for Python 3.8 removed.
* C++: Removed `simulation::inject_events`, use a generator instead.

## New Contributors
* @ErbB4 made their first contribution in https://github.com/arbor-sim/arbor/pull/2271

**Full Changelog**: https://github.com/arbor-sim/arbor/compare/v0.9.0...v0.10.0

# v0.9.0

** 2023 08 09 **
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.9.1-dev
0.10.0-rc
7 changes: 6 additions & 1 deletion cmake/GitSubmodule.cmake
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmake is not my thing so I cannot review it in a responsible way.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will check if .git is present and fail if it isn't. However, scikit-build-core copied over everything except .git so this check failed. I added an inner check to warn users when they run into this general scenarion.

Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@ function(check_git_submodule name path)
"Or download submodules recursively when checking out:\n"
" git clone --recursive https://github.com/arbor-sim/arbor.git\n"
)

get_filename_component(dotgit "${path}/" ABSOLUTE)
file(GLOB RESULT "${path}/*")
list(LENGTH RESULT RES_LEN)
if(NOT RES_LEN EQUAL 0)
message("However, the directory contains some ($RES_LEN) files. Possibly .git was omitted?")
endif()
# if the repository was not available, and git failed, set AVAIL to false
set(${success_var} OFF PARENT_SCOPE)
endif()
Expand Down
6 changes: 3 additions & 3 deletions doc/contrib/release.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ Update tags/versions and test
- README.md, ATTRIBUTIONS.md, CONTRIBUTING.md, CHANGELOG.md. For autogenerated CHANGELOG, see below.
- Verify MANIFEST.in (required for PyPI sdist).
- Double-check that all examples/tutorials/etc are covered by CI.
- Check Python/pip/PyPi metadata and scripts, e.g., ``setup.py``, ``pyproject.toml``.
- Check Python/pip/PyPi metadata and scripts, e.g., ``pyproject.toml``.

#. Create new temp-branch ending in ``-rc``. E.g. ``v0.9.0-rc``
#. Bump the ``VERSION`` file:

- For as long as `scikit-build-core` does not support loading fields from external files, also bump in `pyproject.toml`
- See also :ref:`dev-version`
- For as long as ``scikit-build-core`` does not support loading fields from external files, also bump in ```pyproject.toml``
- See also :ref:``dev-version`
- Append ``-rc``. (Make sure there's no ``-dev``)

#. Create a **draft PR**. Tag and push with ``-rc``. E.g. ``v0.9.0-rc``
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a small step in Arbor and also a small step in computational neuroscience! but still. congratulations!

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "arbor"
version = "0.9.1-dev" # TODO: make dependent on VERSION file. Blocked by https://github.com/scikit-build/scikit-build-core/issues/230
version = "0.10.0" # TODO: make dependent on VERSION file. Blocked by https://github.com/scikit-build/scikit-build-core/issues/230
readme = {file = "README.md", content-type = "text/markdown"}
license = {file = "LICENSE"}
description = "High performance simulation of networks of multicompartment neurons."
Expand Down Expand Up @@ -36,6 +36,7 @@ cmake.args = [
"-DARB_WITH_PYTHON=ON",
"-DARB_USE_BUNDLED_LIBS=ON",
]
sdist.include = ["ext/*/.git"]
wheel.install-dir = "arbor"
wheel.packages = []

Expand Down
14 changes: 9 additions & 5 deletions python/stubs/arbor/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ from arbor._arbor import poisson_schedule
from arbor._arbor import print_config
from arbor._arbor import probe
from arbor._arbor import proc_allocation
from arbor._arbor import profiler_initialize
from arbor._arbor import profiler_summary
from arbor._arbor import recipe
from arbor._arbor import regular_schedule
from arbor._arbor import reversal_potential
Expand Down Expand Up @@ -247,6 +249,8 @@ __all__ = [
"print_config",
"probe",
"proc_allocation",
"profiler_initialize",
"profiler_summary",
"recipe",
"regular_schedule",
"reversal_potential",
Expand Down Expand Up @@ -279,21 +283,21 @@ __config__: dict = {
"mpi4py": False,
"gpu": None,
"vectorize": True,
"profiling": False,
"profiling": True,
"neuroml": True,
"bundled": True,
"version": "0.9.1-dev",
"source": "2024-03-01T14:59:23+01:00 dcdfe101f389cb4854ac3d0a067feeb280600c88 modified",
"build_config": "DEBUG",
"source": "2024-04-11T13:13:43+02:00 8dac3a25b35f3e73f7ad50c27bd06d018e10bb6f modified",
"build_config": "RELEASE",
"arch": "native",
"prefix": "/usr/local",
"python_lib_path": "/usr/local/lib/python3.12/site-packages",
"python_lib_path": "/opt/homebrew/lib/python3.12/site-packages",
"binary_path": "bin",
"lib_path": "lib",
"data_path": "share",
"CXX": "/opt/homebrew/bin/clang++",
"pybind-version": "2.11.1",
"timestamp": "Mar 4 2024 20:56:20",
"timestamp": "Apr 11 2024 20:38:51",
}
__version__: str = "0.9.1-dev"
mnpos: int = 4294967295
42 changes: 42 additions & 0 deletions python/stubs/arbor/_arbor/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ __all__ = [
"print_config",
"probe",
"proc_allocation",
"profiler_initialize",
"profiler_summary",
"recipe",
"regular_schedule",
"reversal_potential",
Expand Down Expand Up @@ -2046,6 +2048,40 @@ class morphology:
A cell morphology.
"""

def __init__(self, arg0: segment_tree) -> None: ...
def __str__(self) -> str: ...
def branch_children(self, i: int) -> list[int]:
"""
The child branches of branch i.
"""

def branch_parent(self, i: int) -> int:
"""
The parent branch of branch i.
"""

def branch_segments(self, i: int) -> list[msegment]:
"""
A list of the segments in branch i, ordered from proximal to distal ends of the branch.
"""

def to_segment_tree(self) -> segment_tree:
"""
Convert this morphology to a segment_tree.
"""

@property
def empty(self) -> bool:
"""
Whether the morphology is empty.
"""

@property
def num_branches(self) -> int:
"""
The number of branches in the morphology.
"""

class morphology_provider:
def __init__(self, morphology: morphology) -> None:
"""
Expand Down Expand Up @@ -3277,6 +3313,12 @@ def print_config() -> None:
Print Arbor's configuration.
"""

def profiler_initialize(arg0: context) -> None: ...
def profiler_summary(limit: float = 0.0) -> str:
"""
Show summary of the profile; printing contributions above `limit` percent. Defaults to showing all.
"""

def stochastic_catalogue() -> catalogue: ...
@typing.overload
def write_component(
Expand Down
Loading