Skip to content

Conversation

@silentpills
Copy link

Summary

I’m a GAMIT/GLOBK user who is interested in this project for its potential to:

  • Speed up geodetic processing through parallelization.
  • Manage stations more efficiently with the web interface.
  • Provide a more streamlined end-to-end workflow for large GNSS networks.

As someone approaching the project from the outside, I found the documentation and setup instructions spread across multiple, occasionally conflicting, sources. For a new user, this makes the setup process more involved than likely intended. This PR is the first step toward consolidating and modernizing the documentation and build process so contributors and end users can get the system running cleanly and efficiently.

Changes in this PR

  • Migrated environment management to Pixi from Conda
    • Added a dedicated docs feature in pixi.toml with Sphinx and common extensions (myst-parser, furo, sphinx-copybutton, sphinx-autodoc-typehints, etc.).
    • Added Pixi tasks for docs:build, docs:serve, and docs:linkcheck.
    • Rationale for Pixi:
      • Faster dependency resolution and environment creation compared to Conda.
      • Fully reproducible across platforms via a single lock file.
      • Built-in task runner for consistent build/test/documentation commands.
      • Simplifies onboarding — one pixi install sets up the entire environment.
  • Removed legacy Conda/Python build files
    • Deleted environment.yaml (Conda env definition).
    • Deleted setup.cfg and setup.py (previous Python packaging/build configuration).
    • Reasoning:
      • (Some of) these files appeared tied to older workflows and no longer matched the current build or packaging needs.
      • Maintaining them alongside Pixi would lead to confusion about which environment definition is authoritative.
      • Removing them signals a clean break from Conda for the docs build environment.
  • Removed outdated/unused documentation directories
    • Deleted legacy Sphinx configs and doc directories that no longer build or are superseded.

Rationale

  • The previous Conda + Sphinx setup was incomplete and non-functional for local builds.
  • Consolidating to Pixi:
    • Reduces environment setup friction for contributors.
    • Provides reproducible builds across platforms.
    • Integrates task management for building and serving docs locally.
  • Removing outdated files reduces maintenance overhead and paves the way for a more modern, organized documentation structure.

Future work (planned in separate PRs)

  • Integrate the web-gui branch (frontend + backend) into the main repository and document its workflow.
  • Add a modern Diátaxis-based docs/ skeleton and migrate existing guides into it.
  • Set up CI to build and preview documentation (perhaps we can host permanent documentation on GitHub Pages or ReadTheDocs?).

Notes & Collaboration

  • This is an in-progress cleanup focused on making it easier to get the project running cleanly and efficiently.
  • No functional code paths were modified; changes are isolated to environment tooling and documentation files.
  • This change removes the official Conda-based setup for now.
  • If maintaining Conda compatibility is important to the project, I’m happy to help reintroduce an environment.yaml alongside Pixi so both workflows are supported.
  • Please feel free to email me at [email protected] if you have any questions or concerns about this or future contribution(s) I might make.

@silentpills silentpills marked this pull request as draft August 15, 2025 16:17
@espg
Copy link
Collaborator

espg commented Aug 18, 2025

Thanks for the PR @silentpills , we appreciate it! Currently we are using conda and the environment.yml file to setup our CI/CD pipeline, specifically to run unit tests with pytest. We also get coverage and flake8 runs out the environment, although these are currently informational rather than operational.

I'm open to us phasing out conda in favor of pixi if it makes sense for us to do so, but at a minimum we would need to maintain running of unit tests on commits and PRs, and ideally would be be able to keep coverage as well. The workflow we're using is in .github/workflows/python-package-conda.yml ; feel free to update this PR with an updated pixi github action workflow that maintains tests, and I'll take a look ahead of getting this merged.

@silentpills
Copy link
Author

Sure! Not a problem at all. I was probably a bit hasty in removing the Conda environment - sorry! I'll take a look at the GitHub workflows you have and make a stab at an alternate action that maintains tests. No harm in maintaining both workflows, though I must say, I think you'll like the speed of Pixi (with uv under the hood)!

@demiangomez
Copy link
Owner

demiangomez commented Sep 12, 2025

Hello @silentpills,

Thank you very much for all the work you have done. Before you continue working on this, lets talk about what we can and cannot do now. For example, we cannot move the web-ui branch (and its associated documentation / config files) and it will have to stay as is for now. This is mainly because there are other people working on this remotely and I don't want to disturb what they are doing. About adding / changing to pixi, we need to look more into this (advantages and drawbacks). Lastly, your comment about removing gnss_data.cfg (in the todo list), please do not work on this (I assume it is a future work thing, but just in case...) because we will not be able to apply it. Restrictions related to how the cluster at Ohio State is setup make the cfg file fundamental for things to work. The cleanup of the old documentation, .idea folder, etc, and adding the wiki to the project we can do. If you want, please reach out by email (see my OSU website) and we can discuss a more formal collaboration and establish priorities.

Demián

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants