Contributing

August 29, 2025 ยท View on GitHub

Table of Contents

Building from Source

Linux, macOS & WSL

Requirements

Important

When building, you must install the development version of the runtime requirements, which provide the headers and libraries necessary for compiling and linking. These packages are typically marked with a -dev or -devel suffix.

Warning

ncurses and argtable detection is spotty on some systems, and you may need to install pkg-config in order for Meson to find them.

Tip

See ci.yml for how astroterm is built and tested on Ubuntu via GitHub Actions.

Install

  1. Clone the repository and enter the project directory:
git clone https://github.com/da-luce/astroterm && cd astroterm
  1. Download star data:
curl -L -o data/bsc5 https://web.archive.org/web/20231007085824if_/http://tdc-www.harvard.edu/catalogs/BSC5
  1. Build:
meson setup build
meson compile -C build

You may now run the generated ./build/astroterm binary or add the astroterm command system-wide via meson install -C build. Pressing q or ESC will exit the display.

Windows

Warning

Building on Windows is more involved than other platforms.

Requirements

Warning

*These libraries must be compiled locally and moved to where Meson expects them to be. See ci.yml for how this is done.

Install

  1. Clone the repository and enter the project directory:
git clone https://github.com/da-luce/astroterm && cd astroterm
  1. Download star data:
curl -L -o data/bsc5 https://web.archive.org/web/20231007085824if_/http://tdc-www.harvard.edu/catalogs/BSC5
  1. Build:
meson setup build
meson compile -C build

Tip

Some steps must be done in the Visual Studio Developer Command Prompt and Developer PowerShell, so it's best to just do everything there.


Updating Data Sources

python3 ./scripts/filter_cities.py

New Releases

  1. Create a new release commit, which bumps the program version in meson.build. Example.

  2. Tag this commit; this signals the CI workflow to publish the release.

git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.Z

Miscellaneous

ASCII BSC5

You can use the ASCII version of the BSC5 star catalog by downloading and extracting the gzip-compressed file to data/ybsc5 instead of data/bsc5.

Testing

Run meson test within the build directory. To get a coverage report, subsequently run ninja coverage.