Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
cb5178a
Pulled in just the necessary changes to compile and use Johannes mods…
bHimes Sep 5, 2025
ea30cc0
roll back changes for the unblurring of decolace to the main branch f…
bHimes Sep 5, 2025
e5a0374
Update build system to be more robust
bHimes Sep 26, 2025
a761a86
Hot fix to patch workflow not getting state info on workflow switch. …
bHimes Sep 4, 2025
977020b
finally a solution to the workflow issue
bHimes Sep 17, 2025
1a910cb
Clean up workflow switching debug code and add comprehensive document…
bHimes Sep 17, 2025
8149bc0
Fix workflow switching crash in MatchTemplatePanel::FillGroupComboBox()
bHimes Sep 24, 2025
fcc4db9
Add wxWidgets Modern C++ Best Practices to CLAUDE.md
bHimes Sep 20, 2025
e3ec576
Reorganize CLAUDE.md documentation into hierarchical structure
bHimes Sep 24, 2025
5bc5f8c
fixed workflow details, TM results to results panel.
bHimes Sep 10, 2025
8a5af94
wip
bHimes Sep 16, 2025
50d378d
wip: claude can add a button.
bHimes Sep 16, 2025
128c36e
Add opt-in LibTorch support for ML-based tools
bHimes Sep 30, 2025
6559726
Add worktrees/ to .gitignore to support git worktree workflow
bHimes Sep 30, 2025
f6118f6
Add clang-format-14 enforcement with pre-commit hook and CI workflow
bHimes Oct 1, 2025
f57291c
Fixes files caught during CI due to changes in the last commit (that …
bHimes Oct 1, 2025
c75353d
Add concurrency groups to CI workflows to auto-cancel redundant runs
bHimes Oct 1, 2025
40545b8
Make build workflows depend on formatting check success
bHimes Oct 1, 2025
a993b3f
Fix clang-format violations found by CI
bHimes Oct 1, 2025
29958b1
Add pull_request triggers to build workflows
bHimes Oct 1, 2025
161a6a3
Fix build workflow conditional to support pull_request events
bHimes Oct 1, 2025
ec4ad0b
Refactor CI workflows to use check_formatting as orchestrator
bHimes Oct 1, 2025
7db42b3
Fix concurrency group deadlock in reusable workflows
bHimes Oct 1, 2025
de17fea
Fix pre-commit hook to use full paths in generated fix script
bHimes Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"permissions": {
"allow": [
"Bash(find:*)",
"Bash(git branch:*)",
"Bash(git show-branch:*)",
"Bash(git merge-base:*)",
"Bash(git ls-tree:*)",
"Bash(grep:*)"
],
"deny": [],
"ask": []
}
}
52 changes: 52 additions & 0 deletions .github/workflows/check_formatting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Check C++ Formatting

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
check-format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Check C++ formatting
uses: RafikFarhad/clang-format-github-action@v3
with:
sources: "src/**/*.cpp,src/**/*.h,src/**/*.cc,src/**/*.cxx,src/**/*.hpp,src/**/*.cu,src/**/*.cuh"
excludes: "include/**/*,src/gui/wxformbuilder/**/*,src/gui/*ProjectX_gui*"
style: file

# Build workflows - only run if formatting check passes
build-gpu-debug:
needs: check-format
uses: ./.github/workflows/debug_build.yml

build-cpu-debug:
needs: check-format
uses: ./.github/workflows/debug_build_cpu_only.yml

build-gpu-release:
needs: check-format
uses: ./.github/workflows/release_build.yml

build-gpu-release-gnu-mkl:
needs: check-format
uses: ./.github/workflows/release_build_GNU_mkl.yml

build-gpu-release-clang-mkl:
needs: check-format
uses: ./.github/workflows/release_build_clang_mkl.yml

build-gpu-release-no-experimental:
needs: check-format
uses: ./.github/workflows/release_build_full_no_experimental.yml
9 changes: 2 additions & 7 deletions .github/workflows/debug_build.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
name: cisTEM GPU debug

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master
workflow_call:

jobs:
run_build:
run_build:
uses: ./.github/workflows/run_builds.yml
with:
build_type: "GPU_debug"
Expand Down
9 changes: 2 additions & 7 deletions .github/workflows/debug_build_cpu_only.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
name: cisTEM cpu debug

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master
workflow_call:

jobs:
run_build:
run_build:
uses: ./.github/workflows/run_builds.yml
with:
build_type: "cpu_debug"
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/release_build.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
name: cisTEM GPU release

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master
workflow_call:

jobs:
run_build:
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/release_build_GNU_mkl.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
name: cisTEM GPU release, GNU MKL

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master
workflow_call:

jobs:
run_build:
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/release_build_clang_mkl.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
name: cisTEM GPU release, clang MKL

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master
workflow_call:

jobs:
run_build:
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/release_build_full_no_experimental.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
name: cisTEM GPU release no experimental full build

on:
push:
branches:
- master
- '*_with_ci'
pull_request:
branches: master
workflow_call:

jobs:
run_build:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
fail-fast: true
runs-on: ${{ inputs.runs_on_os }}
container:
image: cistemdashorg/cistem_build_env:v2.2.1
image: cistemdashorg/cistem_build_env:v2.2.2
options: --user root --rm
# options: --user root --rm --gpus all
outputs:
Expand Down
11 changes: 9 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
autom4te.cache
m4
m4/*
!m4/ax_cuda.m4
!m4/additional_programs.m4
!m4/submodule_FastFFT.m4
!m4/libtorch.m4
config.sub
Makefile.in
ltmain.sh
Expand Down Expand Up @@ -33,4 +37,7 @@ configure~
*.tif
*.dff
__pycache__/
include/Eigen
include/Eigen

.claude/cache/
worktrees/
1 change: 1 addition & 0 deletions .vscode_shared/BenHimes/workspace.code-workspace
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

{
"folders": [
{
Expand Down
2 changes: 1 addition & 1 deletion .vscode_shared/CistemDev/CONTAINER_VERSION_BASE
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.3
2.2.0
2 changes: 1 addition & 1 deletion .vscode_shared/CistemDev/CONTAINER_VERSION_TOP
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.2.1
2.2.2
2 changes: 1 addition & 1 deletion .vscode_shared/CistemDev/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cisTEMdev-wxSTABLE-static12",
"image": "cistemdashorg/cistem_build_env:v2.2.1",
"image": "cistemdashorg/cistem_build_env:v2.2.2",
"remoteUser": "cisTEMdev",
"hostRequirements": {
"gpu": "optional"
Expand Down
25 changes: 24 additions & 1 deletion .vscode_shared/CistemDev/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,11 @@
"DockerRun.DisableDockerrc": true,
"html.format.endWithNewline": true,
"editor.fontSize": 12,
"editor.inlineSuggest.minShowDelay": 2,
"remote.extensionKind": {
"github.copilot-chat": "ui"
},
"github.copilot.enable": {
"github.copilot.enable": {
"*": true,
"markdown": true,
"scminput": false,
Expand All @@ -126,6 +127,28 @@
"log": false,
"matlab": true
},
"chat.tools.terminal.autoApprove": {
"mkdir": true,
Comment on lines +130 to +131

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I am assuming that this only prevents having to individually approve a series of actions, rather than default approving all changes made by the agent?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This approves specific tools, and specifically blocks others. So non-destructive actions like grep are good to approve so you don't have to babysit as much. These rules are for github copilot chat specifically, so they can probably be deprecated. I doubt I'll be switching back. Happy to wait to see what you think of claude code first.

"echo": true,
"/^git (status|show|log)\\b/": true,
"ls": true,
"cd": true,
"pwd": true,
"cat": true,
"grep": true,
"head": true,
"tail": true,
"find": true,
"date": true,
"whoami": true,
"df": true,
"du": true,
"cp": false,
"mv": false,
"rm": false,
"del": false,
"/dangerous/": false
},
"github.copilot.chat.codeGeneration.instructions": [],
"github.copilot.chat.codeGeneration.useInstructionFiles": false
}
85 changes: 78 additions & 7 deletions .vscode_shared/CistemDev/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"env": {
"cuda_dir": "/usr/local/cuda",
"build_dir": "${workspaceFolder}/build",
"common_flags": " --enable-experimental --enable-openmp --disable-build-all --enable-profiling",
// -diag-file-append makes Intel compiler show absolute paths in error messages for easier IDE navigation
"common_flags": "--enable-experimental --enable-openmp --disable-build-all --enable-profiling",
"experimental_algo_flags": "--enable-fp16-particlestacks --disable-multiple-global-refinements",
"common_optional_programs": "--enable-build-scale-with-mask --enable-build-create-mask --enable-build-resample --enable-build-resize"
// "common_optional_programs": "--enable-build-sharpen-map --enable-build-convert-binary-to-star --enable-build-convert-eer-to-mrc --enable-build-resize --enable-build-resample --enable-build-sum_all_mrc_files --enable-build-sum_all_tif_files --enable-build-convert_par_to_star --enable-build-quick_test"
Expand All @@ -21,7 +22,19 @@
{
"label": "BUILD cisTEM",
"type": "shell",
"command": "cd ${build_dir}/intel-gpu-static && make -j${input:compile_cores}"
"command": "cd ${build_dir}/intel-gpu-static && make -j${input:compile_cores} 2>&1 | sed -u 's|../../../src/|${workspaceFolder}/src/|g'",
"problemMatcher": {
"owner": "icpc",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*)\\((\\d+)\\):\\s+(warning|error|remark)\\s+#?(\\d+)?:\\s+(.*)$",
"file": 1,
"line": 2,
"severity": 3,
"code": 4,
"message": 5
}
}
},
{
"label": "Configure cisTEM DEBUG build",
Expand All @@ -31,8 +44,20 @@
{
"label": "BUILD cisTEM DEBUG",
"type": "shell",
"command": "cd ${build_dir}/intel-gpu-debug-static && make -j${input:compile_cores}"
}
"command": "cd ${build_dir}/intel-gpu-debug-static && make -j${input:compile_cores} 2>&1 | sed -u 's|../../../src/|${workspaceFolder}/src/|g'",
"problemMatcher": {
"owner": "icpc",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*)\\((\\d+)\\):\\s+(warning|error|remark)\\s+#?(\\d+)?:\\s+(.*)$",
"file": 1,
"line": 2,
"severity": 3,
"code": 4,
"message": 5
}
}
},
{
"label": "Configure cisTEM DEBUG build TMPVALUE",
"type": "shell",
Expand All @@ -41,8 +66,20 @@
{
"label": "BUILD cisTEM DEBUG TMPVALUE",
"type": "shell",
"command": "cd ${build_dir}/intel-gpu-debug-static-tmpvalue && make -j${input:compile_cores}"
}
"command": "cd ${build_dir}/intel-gpu-debug-static-tmpvalue && make -j${input:compile_cores} 2>&1 | sed -u 's|../../../src/|${workspaceFolder}/src/|g'",
"problemMatcher": {
"owner": "icpc",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*)\\((\\d+)\\):\\s+(warning|error|remark)\\s+#?(\\d+)?:\\s+(.*)$",
"file": 1,
"line": 2,
"severity": 3,
"code": 4,
"message": 5
}
}
},
{
"label": "Configure cisTEM DEBUG build, CPU only",
"type": "shell",
Expand All @@ -51,7 +88,41 @@
{
"label": "BUILD cisTEM DEBUG, CPU only",
"type": "shell",
"command": "cd ${build_dir}/intel-debug-static && make -j${input:compile_cores}"
"command": "cd ${build_dir}/intel-debug-static && make -j${input:compile_cores} 2>&1 | sed -u 's|../../../src/|${workspaceFolder}/src/|g'",
"problemMatcher": {
"owner": "icpc",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*)\\((\\d+)\\):\\s+(warning|error|remark)\\s+#?(\\d+)?:\\s+(.*)$",
"file": 1,
"line": 2,
"severity": 3,
"code": 4,
"message": 5
}
}
},
{
"label": "Configure cisTEM DEBUG build with LibTorch",
"type": "shell",
"command": "mkdir -p ${build_dir}/intel-gpu-debug-static-libtorch && cd ${build_dir}/intel-gpu-debug-static-libtorch && CC=icc CXX=icpc ../../configure ${input:additional_compiler_flags} --enable-debugmode --enable-gpu-debug --with-wx-config=/opt/WX/icc-static/bin/wx-config --enable-staticmode --with-cuda=${cuda_dir} --enable-libtorch ${experimental_algo_flags} ${common_optional_programs} ${common_flags} "
},
{
"label": "BUILD cisTEM DEBUG with LibTorch",
"type": "shell",
"command": "cd ${build_dir}/intel-gpu-debug-static-libtorch && make -j${input:compile_cores} 2>&1 | sed -u 's|../../../src/|${workspaceFolder}/src/|g' && mkdir -p src/lib && cp -u /opt/libtorch/lib/libtorch.so* /opt/libtorch/lib/libtorch_cpu.so* /opt/libtorch/lib/libc10.so* /opt/libtorch/lib/libgomp*.so* src/lib/ 2>/dev/null || true",
"problemMatcher": {
"owner": "icpc",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*)\\((\\d+)\\):\\s+(warning|error|remark)\\s+#?(\\d+)?:\\s+(.*)$",
"file": 1,
"line": 2,
"severity": 3,
"code": 4,
"message": 5
}
}
},
{
"label": "CONFIG GNU, gpu",
Expand Down
Loading
Loading