Skip to content

Update CIL build instructions in developer guide#2286

Open
paskino wants to merge 31 commits intoTomographicImaging:masterfrom
paskino:update_dev_instructions
Open

Update CIL build instructions in developer guide#2286
paskino wants to merge 31 commits intoTomographicImaging: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 on Windows

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 and others added 7 commits April 10, 2026 12:02
Co-authored-by: Casper da Costa-Luis <casper.dcl@physics.org>
Co-authored-by: Laura Murgatroyd <60604372+lauramurgatroyd@users.noreply.github.com>
Co-authored-by: Edoardo Pasca <14138589+paskino@users.noreply.github.com>
Signed-off-by: Laura Murgatroyd <60604372+lauramurgatroyd@users.noreply.github.com>
@lauramurgatroyd
Copy link
Copy Markdown
Member

Some screenshots of the rendered developer guide:
image

image image

@lauramurgatroyd
Copy link
Copy Markdown
Member

Hi, this PR is now ready for review again. I actioned the changes I suggested. Please see the unresolved threads for open questions.

@lauramurgatroyd lauramurgatroyd moved this from Blocked to Priority review in CIL work Apr 15, 2026
@lauramurgatroyd lauramurgatroyd removed the request for review from hrobarts April 15, 2026 10:07
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.

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?

Comment thread scripts/requirements-test-windows.yml Outdated
Comment thread CHANGELOG.md Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst Outdated
Comment thread docs/source/developer_guide.rst
Co-authored-by: Gemma Fardell <47746591+gfardell@users.noreply.github.com>
Signed-off-by: Laura Murgatroyd <60604372+lauramurgatroyd@users.noreply.github.com>
@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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Instructions for developing CIL on windows are unclear

5 participants