-
Notifications
You must be signed in to change notification settings - Fork 24
Large Refactor Update #38
Description
Here lies a plan for a large refactor update:
- Deprecate and remove all builds systems except CMake
- Instead of including external library source in Dump1090, CMake will use CPM to download them from the internet. (we can also apply patches if needed)
- Add a versioning system of some sort, possibly semver
- Rename from simply "Dump1090" to "Dump1090 for Windows" or something, to make it more clear this is a Windows-exclusive port of Dump1090
- Use a proper release system with GitHub actions to auto upload binaries, and do not store built binaries in the repo code
- Add a code conventions document. Not sure exactly what code conventions this project follows myself lol
- REFACTOR
Version System:
The versioning system change proposes that we will set the Dump1090 for Windows version to 1.0.0, and add a -v and --version. Upon tagging a new version and pushing the tag to GitHub, Actions will automatically compile and create a GitHub Release for the build. We can also detect pre releases (e.g. v1.1.0-rc.1) and automatically create a Pre-release GitHub release ("1.1.0 Release Candidate 1")
The version system, if follows semver, would work as followed:
- A Final Release - 1.1.0
- A Release Candidate - 1.1.0-rc.1, followed by 1.1.0-rc.2
Name Change:
This change would rename it from simply "Dump1090" to "Dump1090 for Windows". This change would be made because this port has long since only worked on Windows (due to its deep usage of the Win32 API)
CMake Changes:
This would remove all build systems except for CMake. This is because dependencies will be removed from the source and auto downloaded by CMake instead. This is more conventional because including dependencies source in source code, although popular, is not recommended.
Code Conventions:
Simply documenting @gvanem code conventions, e.g. functioncall (arg1, arg2); instead of functioncall(arg1, arg2);
GitHub Actions:
Add an action so if a release is tagged, a build will automatically occur and associate the tag with a GitHub release.
Refactor:
Most important of all, move most code out of main.c and move CMakeLists.txt to repo root.
I'm fully willing to implement this, @gvanem but am creating the issue first to gather feedback.