Skip to content

Code cleanup - move files to JS8_Mode and JS8_Transceiver class groups#114

Merged
Chris-AC9KH merged 1 commit into
JS8Call-improved:masterfrom
Chris-AC9KH:pr/source_cleanup_2
Jan 2, 2026
Merged

Code cleanup - move files to JS8_Mode and JS8_Transceiver class groups#114
Chris-AC9KH merged 1 commit into
JS8Call-improved:masterfrom
Chris-AC9KH:pr/source_cleanup_2

Conversation

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator

Step 2 of code cleanup.

  • This moves loose files in the source tree to JS_Mode and JS8_Transceiver class groups
  • The convention is that class groups should be prefixed with JS8_ to organize them in the directory structure
  • Optional renaming of classes to match their class group can be done later
  • This also moves the dual-use of .hpp and .h header file extensions to standardize on .h but only affects the moved the files so far

I figured this is an invasive-enough change for step 2.

@Chris-AC9KH Chris-AC9KH added the administration administration of JS8Call-improved project label Jan 1, 2026

@punk-kaos punk-kaos left a comment

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.

Looks pretty straightforward... Sorta iffy on the idea of leaving part of the files hpp and part h but I guess its not really any worse than it was before. And probably safer to do in smaller chunks that one huge forklift move.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

I'm working on step 3 right now, which is going to be a lot bigger than step 2. Step 3 gets rid of the rest of the .hpp's and the rest of the "loose" files in the source tree.

Yes, there was a hodge-podge of .h and .hpp files. I've always preferred .h even for C++ because you tend to look at the end of the file (the extension) to pick out the headers from the source files, and it's more immediately clear if .h is used.

I see no reason to separate source files into a src folder, and headers into an include folder for this project. It's not that big. Moving headers to an include folder involves more paths. If a function is added, it's declared in the header anyway, and doing it this way keeps the two together.

@wmiler wmiler left a comment

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.

+1 for switching to just plain .h

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

I pushed an intermediate commit for step 3. Working on step 4. I'm doing this manually with Xcode, and running continuous code validation to have Xcode point out what's broken so it can be fixed as I go.

Step 4 should finish up the base tree.

@Chris-AC9KH Chris-AC9KH added the ready Ready to merge label Jan 2, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Step 4 makes it look like all the code disappeared. Builds and runs fine.

Screenshot 2026-01-01 at 23 22 08

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

@wmiler I did not move those .desktop files, did not want to break your workflow. They can be moved to JS8_Include when you get time up update your workflow path(s).

@wmiler

wmiler commented Jan 2, 2026

Copy link
Copy Markdown
Collaborator

@wmiler I did not move those .desktop files, did not want to break your workflow. They can be moved to JS8_Include when you get time up update your workflow path(s).

What's message_aggregator.desktop? That's not used in any of the workflows to my knowledge.
Looks like it was last touched 9 years ago, is this something from the original creation @jsherer ?

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Also, affected includes have been resorted with LLVM/clang-format in Xcode. The order of some of the includes was pretty bad, kinda like stuff just kept getting added on in random fashion. So I fixed that.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

I'm not sure what message_aggregator.desktop is. It doesn't appear to be used anywhere. So if it is a dead file, or unless somebody knows where it came from, it can be removed.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Xcode commit history shows message_aggregator.desktop appeared in the source tree back in 2018 with Jordan's initial commit and hasn't been changed since. So it probably came from wsjt-x and it's a dead file.

@Chris-AC9KH Chris-AC9KH added do not merge and removed ready Ready to merge labels Jan 2, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

As it is, merging this will break two outstanding PR's. Which would not be fair to those developers to force them to rebase and fix conflicts. So I changed the label from ready to do not merge until those are dealt with.

…roup folders

Rename all header files with .h extension
Fix function declaration in HamlibTransceiver.h that overrode member function but was not marked override
Remove unused variable in Modulator.cpp
Remove unused files from source tree
Remove duplicate LazyFillComboBox files
Reformat codebase to LLVM C++ standard
@Chris-AC9KH Chris-AC9KH added ready Ready to merge and removed do not merge labels Jan 2, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

This is complete. Processes done:

  • Code cleanup - move loose source and header files in source tree to group folders
  • Rename all header files with .h extension, previously a random mix of .hpp and .h header files
  • Fix function declaration in HamlibTransceiver.h that overrode member function but was not declared override
  • Remove unused variable in Modulator.cpp
  • Remove unused files from source tree
  • Remove duplicate LazyFillComboBox source and header files
  • Reformat codebase to LLVM C++ standard

I'm happy with it. Would recommend merging ASAP as if there is any outstanding work this will seriously break it. It was non-trivial to fix the conflicts with the WSJTX UDP protocol commit, then move that commit into the new source tree.

@wmiler

wmiler commented Jan 2, 2026

Copy link
Copy Markdown
Collaborator

I'm ok with landing this now, rather than later.

@Chris-AC9KH Chris-AC9KH merged commit 356bdc0 into JS8Call-improved:master Jan 2, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Merged, has the required number of reviews and passes all the CI checks. The codebase should now be much prettier and hopefully easier to understand.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

One further comment on this. There is a JS8_Deprecated group that has classes marked for deprecation. I did not move OmniRig into it at this time. Even though OmniRig is technically deprecated there still exists the possibility that somebody might revive it, as it was a popular Windows program at one point.

So I left OmniRig in the JS_Transceiver group for now. I figure we'll give that some time and if nothing ever happens with it we'll move it to the JS8_Deprecated group, and from there it has about 6 months and it goes away.

@Chris-AC9KH Chris-AC9KH deleted the pr/source_cleanup_2 branch April 13, 2026 02:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

administration administration of JS8Call-improved project ready Ready to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants