- Nov 28, 2022
-
-
Thorsten Hater authored
Switch XML parser to pugixml; one less runtime dependency and one less blocker to WASM via emscripten.
-
- Jul 04, 2022
-
-
Brent Huisman authored
Move Python build to `pyproject.toml`, bump Python minver to 3.7, fix macos wheel generation (#1916) * Failing Macos Python wheel builds fixed. * Macos Python wheels now come with dual-arch (x86-64 and arm64) * Moved (nearly) all Python build instructions to `pyproject.toml` * Enables 'build isolation', and need to specify build-deps only once, no need for users or CI scripts to pre-install them. * Enables editable `pip` installs (`pip install -e ./arbor`) * Compatible with 'build frontends' `pip` and `build`. * Passing CMake options actually got shorter * Drop Python 3.6 support.
-
- Jun 21, 2022
-
-
Thorsten Hater authored
-
- Jun 16, 2022
-
-
Thorsten Hater authored
-
- Jan 24, 2022
-
-
Thorsten Hater authored
- build-catalogue - now installed by pip - enable GPU-backends - isolate from being installed in a non-default dir - rename to arbor-build-catalogue - allow hand-written C++ mechanisms to be linked in the same catalogue. - CMake - enable PIC on arbor always to allow linking to shared objects - use relative paths when configuring a-b-c, to make relocation less of a problem - Python - ensure a-b-c is installed by pip, along with headers and libarbor.a - throw errors if tools (cmake scripts, arbor package, modcc) missing - transition setup.py setuptools -> skbuild. - Wheels - Add NML2 support to wheels - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwheel#363 - Python Wheels are tested as part of the Github Action - Add nml and bundled status to config().
-
- Oct 07, 2021
-
-
Robin De Schepper authored
-
- Sep 20, 2021
-
-
Robin De Schepper authored
The duplication arose from slightly more complicated composition than usual but could be resolved by proper MRO, it took me a few passes from its original form as well before I figured out the situation is not as complicated as it seems. `super()` is equal to `super(cls, self)` where `cls` is obtained from the current function's class scope. If arg 2 is an object it will start an MRO search of the object, but skipping classes before the 1st arg type is encountered. In our case with the following base classes: `(_command_template, base_command_class)` this means we can define our base logic in `_command_template` and use `super()` calls there to traverse the MRO in `(base_command_class,)`, so by simply defining `class install_command(_command_template, install)` and `bdist_wheel_command(_command_template, bdist_wheel)` our MRO issue is solved and the duplication removed.
-
- Jun 23, 2021
-
-
Brent Huisman authored
Don't pass any architecture by default in setup.py to allow for building binary wheels for targets like x86_64. Build Python package with 'none' arch by default. Bump version to 0.5.2.
-
- May 26, 2021
-
-
Brent Huisman authored
* Update URLs to arbor-sim.org * update badge links
-
- Mar 05, 2021
-
-
Brent Huisman authored
* Auto-generate binary Python wheels, triggered by git tags 'v*'. * Wheels are generated for Python versions 3.6-3.9, for Linux using the [PyPA manylinux-2014 image](https://github.com/pypa/manylinux) and MacOS using macos-latest (10.15 at time of writing). * The Action generates `sdist` for any other platforms. * The cibuildwheel action automatically prepares the wheels using [auditwheel](https://cibuildwheel.readthedocs.io/en/stable/options/#repair-wheel-command), which means bundling of external deps (e.g. libxml2 for NeuroML). * The output is all that's needed for publication of a new version to (Test)PyPI. * `setup.py` defaults `neuroml` to on. * A small change to `CMakeLists.txt` was required to build the wheels: based on this [Pybind hint](https://pybind11.readthedocs.io/en/stable/compiling.html#findpython-mode) `Development.Module`is now required, and not `Development` when CMake searches for Python. I confirm this change is needed to make Arbor build in the manylinux docker images, but I do not understand what the change implies, other than that we now don't link to `libpython`.
-
- Feb 18, 2021
-
-
Brent Huisman authored
* Update `README.md`: moved citation to `doc/index.rst`. * Advertise Py3.9 compat PyPI in setup.py * Fix typos.
-
- Feb 09, 2021
-
-
Lennart Landsmeer authored
-
- Feb 05, 2021
-
-
Nora Abi Akar authored
* Move contents of `arbornml` to to `arborio` * `arborio` will be built with NeuroML2 morphology support if `ARB_CMAKE_NEUROML` is set. * Wrap `arborio::neuroml` and `arborio::morphology_data` for pyarb. * Add documentation. * add `neuroml` flag to `setup.py` Fixes #1256 Fixes #1234
-
- Jan 07, 2021
-
-
Benjamin Cumming authored
-
- Jan 06, 2021
-
-
Brent Huisman authored
Numpy is now explicitly required for use in the Python probes interface.
-
Sebastian Schmitt authored
* Add the ability to use json and pybind11 libraries installed on the system instead of the vesrsions of those libraries bundled as submodules in the Arbor repository * Turned on by default * Toggled using the new `ARB_USE_BUNDLED_LIBS` CMake flag * Update documentation for installation * Update CI and pip workflows to opt in to the bundled libraries
-
- Jan 05, 2021
-
-
Benjamin Cumming authored
Revert a change introduced in #1282 that required the python module for arbor to build the documentation. This breaks the readthedocs build, where arbor is not available. * Remove arbor dependence from `doc/conf.py`, reverting to the original "out of core" approach * Fix other recently introduced issues that lead to CMake errors when configuring the documentation when the Python target is not configured. * The CMake variable `PYTHON_EXECUTABLE` wasn't set, but was required to make calls to the Python interpreter. * Instead of relying on pybind11 to find Python, explicitly detect it using `find_package(Python3 ...)` * Make Python3 a hard requirement when building the Python wrapper * And a soft requirement otherwise, that will fail only when the docs are built.
-
- Oct 15, 2020
-
-
Benjamin Cumming authored
-
Benjamin Cumming authored
-
- Apr 15, 2020
-
-
Nora Abi Akar authored
- Add option to compile Arbor for HIP/CUDA backend using Clang. - Add new CMake option `ARB_GPU_COMPILE_TYPE` to distinguish between three possible gpu platforms/builds: `cuda-nvcc`; `cuda-clang`; `hip-clang` - Add gpu wrapper functions in `arbor/backends/gpu/gpu_api.hpp` and `arborenv/gpu_api.hpp` which call HIP/CUDA functions depending on the platform - Rename functions and files: cuda -> gpu - Add downgraded warp primitives for HIP - Implement `uuid` workaround for HIP - Set correct alignment and warp size for AMD gpus - Update installation guide and docs. - Update pip/setuptools to support new gpu targets Fixes #833
-
- Apr 09, 2020
-
-
Benjamin Cumming authored
Work around issue caused by some versions of pip skipping the `install` stage when no additional command line args are passed via `--install-option`. Keep settings that can be modified via install option in a singleton that initializes them to their default.
-
- Apr 06, 2020
-
-
Benjamin Cumming authored
* add MANIFEST file that describes all paths required in source distribution so that pip can compile Arbor. * fixes to `setup.py` to help it work across supported Python versions. Tested with: * setup tools and pip * python 3.7 and 3.8 * pip 19 and pip 20 * Linux and OS X
-
- Feb 28, 2020
-
-
Benjamin Cumming authored
Add a `setup.py` for installing Arbor directly with pip/setuptools. Implement a setuptools extension for CMake in `setup.py`. To be honest, I don't understand entirely how it works, but setuptools is obtuse enough that I don't feel at all guilty about this. Define additional flags for optionally enabling GPUs, MPI, Vectorization and micro-architecture targets, for more adventurous users. The documentation is updated with a "howto pip" for more casual users who don't want anything to do with CMake. Fixes #958 .
-