Skip to content

Update CIL build instructions in developer guide#2286

Merged
lauramurgatroyd merged 35 commits into
TomographicImaging:masterfrom
paskino:update_dev_instructions
May 8, 2026
Merged

Update CIL build instructions in developer guide#2286
lauramurgatroyd merged 35 commits into
TomographicImaging:masterfrom
paskino:update_dev_instructions

Conversation

@paskino
Copy link
Copy Markdown
Contributor

@paskino paskino commented Feb 2, 2026

Description

  • Updates instructions on local build of CIL.
    • README
    • Developer's guide
  • Updates to FindIPP.cmake to find IPP libraries in conda environments

Example Usage

Contribution Notes

  • The content of this Pull Request (the Contribution) is intentionally submitted for inclusion in CIL (the Work) under the terms and conditions of the Apache-2.0 License
  • I confirm that the contribution does not violate any intellectual property rights of third parties

Changes

  • README.md
  • Updates the build script as locally I noticed that IPP was not found unless -Ccmake.define.IPP_ROOT=$CONDA_PREFIX was passed
  • Created environment files:

Testing you performed

Please add any demo scripts to https://github.com/TomographicImaging/CIL-Demos/tree/main/misc

Local build on:

  • Linux
  • mac ARM
  • Windows

Checked the artifact documentation produced by GHA.

Linux

On Linux a total of 43 tests are skipped:

test_aqdata_full_tigre (test_DataProcessor.TestBinner.test_aqdata_full_tigre) 
test_pad_id_full_tigre (test_DataProcessor.TestPadder.test_pad_id_full_tigre) 
test_aqdata_full_tigre (test_DataProcessor.TestSlicer.test_aqdata_full_tigre) 
test_linearity (test_PluginsTigre_Siddon.Test_Parallel2D_Projectors_toy_tigre.test_linearity) TIGRE backprojector weights bug
test_norm (test_PluginsTigre_Siddon.Test_Parallel2D_Projectors_toy_tigre.test_norm) TIGRE backprojector weights bug
test_linearity (test_PluginsTigre_Siddon.Test_Parallel3D_Projectors_toy_tigre.test_linearity) TIGRE backprojector weights bug
test_norm (test_PluginsTigre_Siddon.Test_Parallel3D_Projectors_toy_tigre.test_norm) TIGRE backprojector weights bug
test_linearity (test_PluginsTigre_interpolated.Test_Parallel2D_Projectors_toy_tigre.test_linearity) TIGRE backprojector weights bug
test_norm (test_PluginsTigre_interpolated.Test_Parallel2D_Projectors_toy_tigre.test_norm) TIGRE backprojector weights bug
test_linearity (test_PluginsTigre_interpolated.Test_Parallel3D_Projectors_toy_tigre.test_linearity) TIGRE backprojector weights bug
test_norm (test_PluginsTigre_interpolated.Test_Parallel3D_Projectors_toy_tigre.test_norm) TIGRE backprojector weights bug
test_geometry_gpu (test_io.TestZeissDataReader.test_geometry_gpu) Missing prerequisites: has_file False, has_olefile True has_dxchange True
test_import_error (test_io.TestZeissDataReader.test_import_error) This unit test runs only if dxchange is not installed: has_dxchange True
test_read_and_reconstruct_2D_gpu (test_io.TestZeissDataReader.test_read_and_reconstruct_2D_gpu) Missing prerequisites: has_file False, has_olefile True has_dxchange True, has_astra True has_wget True
test_read_txm_recon_file_gpu (test_io.TestZeissDataReader.test_read_txm_recon_file_gpu) Missing prerequisites: has_file False, has_recon_file False has_olefile True has_dxchange True, has_astra True has_wget True

Plus these which test compatibility with SIRF (which is not installed)

test_TNV_call_works (test_SIRF.TestPETRegularisation.test_TNV_call_works) TNV not implemented for 2D
test_TNV_proximal_works (test_SIRF.TestPETRegularisation.test_TNV_proximal_works) TNV not implemented for 2D
test_SIRF_CIL_MLEM (test_SIRF.TestCILSIRFPrecond.test_SIRF_CIL_MLEM) Skipping as SIRF is not available
test_Gradient (test_SIRF.TestGradientMR_2D.test_Gradient) Skipping as SIRF is not available
test_TVdenoisingMR (test_SIRF.TestGradientMR_2D.test_TVdenoisingMR) Has SIRF
test_Gradient (test_SIRF.TestGradientPET_2D.test_Gradient) Skipping as SIRF is not available
test_Gradient (test_SIRF.TestGradientPET_3D.test_Gradient) Skipping as SIRF is not available
test_FGP_TV_call_works (test_SIRF.TestMRRegularisation.test_FGP_TV_call_works) Has SIRF and CCPi Regularisation
test_FGP_TV_proximal_works (test_SIRF.TestMRRegularisation.test_FGP_TV_proximal_works) Has SIRF and CCPi Regularisation
test_TGV_call_works (test_SIRF.TestMRRegularisation.test_TGV_call_works) Has SIRF and CCPi Regularisation
test_TGV_proximal_works (test_SIRF.TestMRRegularisation.test_TGV_proximal_works) Has SIRF and CCPi Regularisation
test_TNV_call_works (test_SIRF.TestMRRegularisation.test_TNV_call_works) Has SIRF and CCPi Regularisation
test_TNV_proximal_works (test_SIRF.TestMRRegularisation.test_TNV_proximal_works) Has SIRF and CCPi Regularisation
test_FGP_TV_call_works (test_SIRF.TestPETRegularisation.test_FGP_TV_call_works) Has SIRF and CCPi Regularisation
test_FGP_TV_proximal_works (test_SIRF.TestPETRegularisation.test_FGP_TV_proximal_works) Has SIRF and CCPi Regularisation
test_TGV_call_works (test_SIRF.TestPETRegularisation.test_TGV_call_works) Has SIRF and CCPi Regularisation
test_TGV_proximal_works (test_SIRF.TestPETRegularisation.test_TGV_proximal_works) Has SIRF and CCPi Regularisation
test_FGP_TV_call_works (test_SIRF.TestRegRegularisation.test_FGP_TV_call_works) Has SIRF and CCPi Regularisation
test_FGP_TV_proximal_works (test_SIRF.TestRegRegularisation.test_FGP_TV_proximal_works) Has SIRF and CCPi Regularisation
test_TGV_call_works (test_SIRF.TestRegRegularisation.test_TGV_call_works) Has SIRF and CCPi Regularisation
test_TGV_proximal_works (test_SIRF.TestRegRegularisation.test_TGV_proximal_works) Has SIRF and CCPi Regularisation
test_TNV_call_works (test_SIRF.TestRegRegularisation.test_TNV_call_works) Has SIRF and CCPi Regularisation
test_TNV_proximal_works (test_SIRF.TestRegRegularisation.test_TNV_proximal_works) Has SIRF and CCPi Regularisation
test_BlockDataContainer_with_SIRF_DataContainer_add (test_SIRF.TestSIRFCILIntegration.test_BlockDataContainer_with_SIRF_DataContainer_add) Has SIRF
test_BlockDataContainer_with_SIRF_DataContainer_divide (test_SIRF.TestSIRFCILIntegration.test_BlockDataContainer_with_SIRF_DataContainer_divide) Has SIRF
test_BlockDataContainer_with_SIRF_DataContainer_multiply (test_SIRF.TestSIRFCILIntegration.test_BlockDataContainer_with_SIRF_DataContainer_multiply) Has SIRF
test_BlockDataContainer_with_SIRF_DataContainer_subtract (test_SIRF.TestSIRFCILIntegration.test_BlockDataContainer_with_SIRF_DataContainer_subtract) Has SIRF

Windows

======================================================================
FAIL: test_set_up (test_algorithms.TestLSQR.test_set_up)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\ofn77899\Dev\CIL\Wrappers\Python\test\test_algorithms.py", line 2059, in test_set_up
    self.assertAlmostEqual(lsqr.beta,  beta, 5 )
AssertionError: 96.19578 != 96.19578622941998 within 5 places (8.33635357366802e-06 difference)

----------------------------------------------------------------------
Ran 1125 tests in 226.381s

FAILED (failures=1, skipped=43)

Related issues/links

Checklist

  • I have performed a self-review of my code
  • I have added docstrings in line with the guidance in the developer guide
  • I have updated the relevant documentation
  • I have implemented unit tests that cover any new or modified functionality
  • CHANGELOG.md has been updated with any functionality change
  • Request review from all relevant developers

@paskino paskino added this to UM 2026 Feb 2, 2026
@github-project-automation github-project-automation Bot moved this to Todo in UM 2026 Feb 2, 2026
@paskino paskino moved this from Todo to In Progress in UM 2026 Feb 2, 2026
@paskino paskino marked this pull request as ready for review February 6, 2026 20:43
@paskino paskino requested a review from a team as a code owner February 6, 2026 20:43
@paskino paskino requested review from casperdcl, gfardell and lauramurgatroyd and removed request for a team February 6, 2026 20:44
Added information about creating a shallow clone with --depth parameter.
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Copy link
Copy Markdown
Member

@casperdcl casperdcl left a comment

Choose a reason for hiding this comment

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

a bit concerned about:

  • repetition in README.md & developer_guide.rst (would prefer one to link to the other)
  • lack of mention of conda env names (create --name <env_name> && activate <env_name)

Comment thread README.md Outdated
Comment thread src/Core/cmake/FindIPP.cmake Outdated
Comment thread docs/source/developer_guide.rst
Comment thread docs/source/developer_guide.rst Outdated
Comment thread recipe/bld.bat Outdated
Comment thread recipe/build.sh Outdated
Comment thread README.md Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread README.md Outdated
@lauramurgatroyd
Copy link
Copy Markdown
Member

lauramurgatroyd commented Apr 16, 2026

I'm confused by the environment file links not working, maybe they are in an unmerged PR?

However, I would have thought that using the environment files that ship with CIL is good enough as users will need to clone the repositories by default. Was there a reason to move away from that?

This PR in scripts has the env file: https://github.com/TomographicImaging/scripts/pull/9/changes

I am not sure where they should live - we need to discuss what the purpose of https://github.com/TomographicImaging/scripts is

Signed-off-by: Casper da Costa-Luis <casper.dcl@physics.org>
Copy link
Copy Markdown
Member

@casperdcl casperdcl left a comment

Choose a reason for hiding this comment

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

We could also move scripts/requirements-test.yml to just environment.yml in the root.

@lauramurgatroyd
Copy link
Copy Markdown
Member

We will move the dev environment files into CIL, not host them in scripts, see: TomographicImaging/scripts#9 (review)

lauramurgatroyd and others added 4 commits April 17, 2026 17:39
Co-authored-by: Gemma Fardell <47746591+gfardell@users.noreply.github.com>
Signed-off-by: Laura Murgatroyd <60604372+lauramurgatroyd@users.noreply.github.com>
@lauramurgatroyd lauramurgatroyd moved this from Priority review to In Progress in CIL work Apr 24, 2026
@lauramurgatroyd
Copy link
Copy Markdown
Member

Some of the new docs changes rendered:

image image

@lauramurgatroyd lauramurgatroyd changed the title Update dev instructions Update CIL build instructions in developer guide Apr 24, 2026
@lauramurgatroyd lauramurgatroyd moved this from In Progress to Priority review in CIL work Apr 29, 2026
Copy link
Copy Markdown
Member

@gfardell gfardell left a comment

Choose a reason for hiding this comment

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

My only comment is on package order in the test script. It all looks great, but I did not walk through them.

Comment thread scripts/cil_development.yml
@lauramurgatroyd
Copy link
Copy Markdown
Member

It was not necessary to have both requirements-test.yml and cil_development.yml - so I merged them into one file named cil_development.yml. Everything else has been reviewed and approved except this change

Copy link
Copy Markdown
Member

@casperdcl casperdcl left a comment

Choose a reason for hiding this comment

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

I'll have to update #2321 after this is merged

@lauramurgatroyd
Copy link
Copy Markdown
Member

Thanks @casperdcl

@lauramurgatroyd lauramurgatroyd merged commit 56d7468 into TomographicImaging:master May 8, 2026
11 checks passed
@github-project-automation github-project-automation Bot moved this from Priority review to Done in CIL work May 8, 2026
@lauramurgatroyd lauramurgatroyd moved this from Done to Done & Reflected in CIL work May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done & Reflected

Development

Successfully merging this pull request may close these issues.

Instructions for developing CIL on windows are unclear

5 participants