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.
- Unix-like environment (Linux, macOS, WSL, etc.)
- C compiler
meson1.4.0 or newer (installation via python is recommended)ninja1.8.2 or newerncurseslibraryargtable2- Some common CLI tools
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
- Clone the repository and enter the project directory:
git clone https://github.com/da-luce/astroterm && cd astroterm
- Download star data:
curl -L -o data/bsc5 https://web.archive.org/web/20231007085824if_/http://tdc-www.harvard.edu/catalogs/BSC5
- 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
- Microsoft Visual C++ (Other C compilers currently don't work)
meson1.4.0 or newer (installation via python is recommended)ninja1.8.2 or newerpython(for embedding data during build)pdcurses*argtable2*
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
- Clone the repository and enter the project directory:
git clone https://github.com/da-luce/astroterm && cd astroterm
- Download star data:
curl -L -o data/bsc5 https://web.archive.org/web/20231007085824if_/http://tdc-www.harvard.edu/catalogs/BSC5
- 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
- City data may be updated by running
filter_cities.py
python3 ./scripts/filter_cities.py
New Releases
- This project follows
-
Create a new release commit, which bumps the program version in
meson.build. Example. -
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.