You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
⚠️ seed postprocessing hooks and Distribution draws; require Python 3.11 (#291)
⚠️bsb-arbor: draw the poisson generators from the network's randomness (#280)
bsb-core: parse config package requirements into a slotted subclass (#268)
bsb-core: attribute configuration errors to the node they happened on (#273, #67, #45, #59)
bsb-core: stop re-parsing pyproject.toml per report, and survive an offline fetch (#269)
⚠️bsb-core: store structured metadata so it survives being written (#262)
⚠️bsb-core: draw device targets the same way on every rank (#265)
⚠️bsb-core: the soma is every location labelled soma (#295)
⚠️bsb-core: multiplex per-device recordings instead of one Neo object per cell (#297)
bsb-hdf5: count placement sets from the tracked chunk stats (#270, #26, #28)
bsb-nest: install NEST without a synced environment (#279)
⚠️bsb-neuron: default synapse delay to 1 ms, and drop the unrunnable Convergence strategy (#271, #99, #136)
release: bump sibling pins on release and stop skipping the release run (#259, #193)
⚠️ Breaking Changes
bsb-core: multiplex per-device recordings instead of one Neo object per cell (#297)
seed postprocessing hooks and Distribution draws; require Python 3.11 (#291)
BSB requires Python 3.11 or newer. Every package's requires-python moves from >=3.10,<4 to >=3.11,<4.
bsb-core: the soma is every location labelled soma (#295) SomaTargetting targets the locations labelled soma instead of
location (0, 0). A cell whose morphology labels no soma has no soma locations, so
devices that default to it (voltage recorder, current and voltage clamp, spike
generator) target nothing on such a cell.
bsb-core: recordings say what they recorded, and read_results traces it back to the network (#293, #288)
the cell_type annotation of recordings and Recording.cell_type are renamed to cell_model. On NEST and arbor, cell_id is the cell's placement set id instead of the simulator's node id
or gid.
bsb-core: a device records every cell it watched (#290)
recordings no longer carry gids or pop_size. A device's
recordings are the cells it watched, so their number is the population and their cell_ids are which cells.
Claude-Session: https://claude.ai/code/session_017Zcwom5VRiA5WMreKncmVg
bsb-core: record one signal per cell, annotated the same way everywhere (#272)
bsb-core: a run ends with one results file, whatever it took to make it (#266) bsb simulate writes one file per run rather than one per rank,
and SimulationResult gains finalize, which an adapter driving the result
itself has to call.
Claude-Session: https://claude.ai/code/session_01BHScuq1Hoemb5AUeofueWP
bsb-nest: seed the kernel from the network's randomness (#275) seed is no longer configured on a NEST simulation. Pin the
network's rng.seed, or declare an rng.settings entry of strategy nest and
name it on the simulation's rng.
Claude-Session: https://claude.ai/code/session_017Zcwom5VRiA5WMreKncmVg
bsb-core: draw connectivity from the configured randomness (#277)
bsb-core: draw placement from the configured randomness (#276)
bsb-arbor: draw the poisson generators from the network's randomness (#280)
bsb-core: draw device targets the same way on every rank (#265)
a device targetting a fraction or count of a population
selects a different subset than before, since the selection is now seeded.
bsb-core: parameters answer what a model's values are, per arity (#260) Parameter no longer has a value attribute and ParameterValue is removed. CellModel.parameters is a dict keyed by the model
parameter, not a list. constants blocks no longer accept a computed parameter;
write it in parameters. resolution is configured on any simulation, not only
per backend.
bsb-core: store structured metadata so it survives being written (#262)
the config annotation on a result block is a JSON string rather
than a dict, in memory as well as on file. Keeping it a dict in memory and a
string on file would reintroduce exactly the trap that caused this. Read it with read_simulation_config.
bsb-core: drop the adapter's post_prepare argument (#278)
bsb-core: give the prepared simulation a hook of its own (#263) post_prepare on a simulation is replaced by after_prepare,
whose entries are named dynamic nodes with a strategy rather than a list of
dotted function paths.
Claude-Session: https://claude.ai/code/session_01BHScuq1Hoemb5AUeofueWP
bsb-neuron: default synapse delay to 1 ms, and drop the unrunnable Convergence strategy (#271, #99, #136) bsb.connectivity.Convergence and the bsb.Convergence
public API entry are removed. Configurations using strategy: bsb.connectivity.Convergence did not work; use bsb.connectivity.FixedIndegree or a custom strategy instead.
Closes #99