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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions