Skip to content

Remove EXPERIMENTAL flag and deprecated features #56

Description

@bHimes

Summary

Complete removal of the EXPERIMENTAL preprocessor flag from the cisTEMx build system. This flag currently controls 3 programs and 1 GUI panel across 34 files. The mature simulation features will be promoted to standard while deprecated development features will be removed.

Features Being Promoted to Standard

  • simulate program - Electron microscopy image simulation
  • sum_all_power_spectra program - Power spectra aggregation utility
  • water.cpp/h - Water molecule simulation library
  • wave_function_propagator.cpp/h - Wave function propagation for simulate

Features Being Removed

  • refine_template_dev program - Development version superseded by main refine_template
  • Experimental GUI panel and all associated UI components
  • experimental_icon.cpp - GUI asset no longer needed

Implementation Steps

Step 1: Fix Makefile.am Duplicate

  • Remove duplicate lines 545-547 (keep lines 535-537)

Step 2: Remove Build System Conditionals

configure.ac

  • Delete lines 372-383 (EXPERIMENTAL arg definition)
  • Delete line 393 (AM_CONDITIONAL for EXPERIMENTAL_AM)

cistem_config.in

  • Delete lines 33-34 (EXPERIMENTAL undef)

src/Makefile.am

  • Remove all 6 if EXPERIMENTAL_AM conditional blocks
  • Move water.cpp to unconditional libcore_a_SOURCES
  • Move simulate and sum_all_power_spectra to unconditional bin_PROGRAMS
  • Delete refine_template_dev from bin_PROGRAMS
  • Delete GUI experimental sources (MyExperimentalPanel, RefineTemplateDevPanel)
  • Delete experimental headers section
  • Delete refine_template_dev build rules (lines 1357-1363)

Step 3: Remove Source Code Preprocessor Blocks

src/core/gui_core_headers.h

  • Delete lines 151-154 (experimental panel includes)

src/programs/projectx/projectx.cpp (11 blocks)

  • Delete lines 37-40 (global pointer declarations)
  • Delete lines 64-66 (icon image list)
  • Delete lines 123-125 (panel instantiation)
  • Delete lines 152-154 (sub-panel instantiation)
  • Delete lines 162-164 (icon list initialization)
  • Delete lines 173-175 (icon bitmap loading)
  • Delete lines 208-210 (main menu icon)
  • Delete lines 217-219 (assets book icon)
  • Delete lines 235-238 (experimental book icons)
  • Delete lines 246-248 (menu book page)
  • Delete lines 269-271 (experimental panel page)

src/gui/MainFrame.cpp

  • Delete lines 56-59 (external panel declarations)
  • Delete lines 263-266 (menu book page change handler)
  • Delete lines 361-364 (volume dirty flag handling)

src/gui/MyOverviewPanel.cpp

  • Delete lines 164-166 (EXPERIMENTAL build info display)

Step 4: Delete Experimental Files

  • Delete src/programs/refine_template_dev/refine_template_dev.cpp
  • Delete src/gui/MyExperimentalPanel.cpp
  • Delete src/gui/MyExperimentalPanel.h
  • Delete src/gui/RefineTemplateDevPanel.cpp
  • Delete src/gui/RefineTemplateDevPanel.h
  • Delete src/gui/icons/experimental_icon.cpp
  • Check if src/programs/match_template/template_matching_data_sizer.h is used elsewhere, delete if not

Step 5: Update GitHub Actions Workflows

Remove --enable-experimental from global_configure_options:

  • .github/workflows/release_build.yml line 12
  • .github/workflows/debug_build.yml line 12
  • .github/workflows/release_build_cpu_only.yml line 12
  • .github/workflows/debug_build_cpu_only.yml line 12
  • .github/workflows/release_build_clang_noFastFFT.yml line 12
  • .github/workflows/release_build_GNU_mkl.yml line 12

Step 6: Update Development Configurations

  • .vscode/tasks.json line 12 - Remove --enable-experimental
  • scripts/linting/cpp_cuda/generate_compile_db.sh line 25 - Remove flag

Step 7: Update Documentation

  • docs/user-guide/simulation.md line 209 - Remove note about needing experimental flag

Step 8: Testing

  • Clean configure and build without --enable-experimental
  • Verify simulate program works
  • Verify sum_all_power_spectra works
  • Verify water simulation in libcore
  • Run console_test
  • Run samples_functional_testing
  • Run unit_test_runner
  • Verify GUI launches without experimental tab
  • Verify all CI/CD workflows pass

Impact Summary

  • Files Modified: 16
  • Files Deleted: 7
  • Total Files Affected: 23
  • Programs Promoted: 2 (simulate, sum_all_power_spectra)
  • Programs Removed: 1 (refine_template_dev)
  • GUI Components Removed: 2 panels + 1 icon

Notes

  • The duplicate bin_PROGRAMS lines in Makefile.am (535-537, 545-547) is a pre-existing bug that will be fixed
  • Intel compiler warning suppression (-wd1595) was only enabled with experimental flag - verify if still needed
  • template_matching_data_sizer.h may already be compiled unconditionally via match_template program

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions