Skip to content

KOLANICH-physics/SeaBreeze.cpp

Repository files navigation

SeaBreeze SeaBreeze logo form SourceForge

GitHub Actions Libraries.io Status MIT license

Download CI artifacts: list of artifacts, Windows x86, Windows x86_64.

This is a cleaned-up and refactored fork of SeaBreeze library. While the library itself have been created by Ocean Optics employees, it was in the state making it hard to properly use it. This fork contains a number of improvements. In the process of cleaning the mess mistakes and info alternation have happenned, so the commit history may not represent what the authors have meant. The software is provided AS IS, neither original authors nor any present or past mainatainers or contributors are liable for anything. You interact with the software on your own risk.

The vanilla version used to be situated by the link: https://sourceforge.net/p/seabreeze

Goals

  • Cleaning the mess.
  • Rebasing everything into the default branch.
  • Refactoring.
  • devops:
    • Building using CMake.
    • Building using free open-source toolchains (GCC/Clang).
    • CI.
    • Packaging.
    • Promoting into distros.

Non-goals

  • Accurate preservation of commit and release history. All the history has been rewritten. Some commits have been reordered. Most of the branches have been rebased into one
  • Having build files in the repo that can be autogenerated.

Changes to the history

Disclaimer:

  1. It can be an incomplete list of hanges.
  2. Commits can be marked with their original authors as commiters, though it's me who have rewritten them.
  3. This repo history will likely change a lot of times.

Changes to history:

  • The repo has been imported from its SVN on SourceForge and converted into git using svn2git.

  • reposurgeon has been used to:

    • set authors' information - for nice GitHub charts with avatars and links to profiles.
    • convert all the files into LF line ending - to avoid merge conflicts.
    • change indentation from spaces to tabs in *.[ch](pp), *.cs, CMake and some other files - to reduce size and avoid merge conflicts.
    • reformat using clang-format - to unify the style and to avoid merge conflicts.
    • upgrade all Doxygen files in all the commits (will be anachronic, but we don't care) - to avoid merge conflicts.
  • git-filter-repo has been used to remove the unneeded files:

    • Makefiles - they can be autogenerated by CMake.
    • Visual Studio project files - some of them can be autogenerated by CMake, other ones are just unneeded when using CMake as a build system.
    • WinUSB headers - proprietary and not needed, MinGW has own free ones.
    • Files to make installers using Visual Studio - this format is deprecated and also caused a lot of merge conflicts, use WiX or CPack instead.
  • Some commits contain my notes about what is happenning in other branches, because in different branches the authors have made some different strong decisions IDK which choice is really better. So I have shosen some the most probably looking sensible, and added the rest as comments.

  • Different diverged branches have been rebased upon each other and commits have been reordered. And tried to be merged. Without a lot of success though - somehow conflict marks have managed to find their ways into history (it's a goal to remove it). The goal is to rewrite the history making it linear, because it is easier to rebase such history.

About

A git mirror and a fork of discontinued FOSS library for OceanOptics spectrometers

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published