Skip to content

improve reproducability and docs with pixi and quarto #88

Description

@jgunstone

Hi there,

I periodically come and have a look at topologicpy and run the notebooks and often find that something doesn't run.
Normally the issue is trivial and is typically the result of one of 2 items:

  1. the source code updated and the notebooks have become out of date (calling a none existent method or something)
  2. the notebooks require additional packages installed that are not within the slim list of dependencies

This time, instead of just quickly making it work I spent a minute to have a go at making the process more robust.

I created a fork where broadly I've done 2 things:

  1. add pixi

    1. this allows support for multiple environments, making it easy to to have the slim prod env whilst also adding a heavier dev env with everthing you might need for local testing.
    2. you can also tasks which simplify commands used for both local testing and CI
    3. for example I added a task to install openstudio on linux, making the process of getting set up to run energy models much simpler and CI ready
  2. add a quarto website (see https://jgunstone.github.io/topologicpy/) with built tutorials from the existing notebooks

    1. using the larger dev env created above we can now execute the notebooks on CI to create
    2. this adds a level of CI for sort of integration tests to check these notebooks still run (see https://github.com/jgunstone/topologicpy/actions/runs/22394868749/job/64825866444)
    3. and creates useful documentation
    4. NOTE. it would be possible to also add API docs as current using quartodoc instead of sphinx... but this would need some extra set up.

I'll create a PR so you can see the changes clearly though I'm not expecting it to get merged as is; I just wanted to start the discussion about whether you are interested to accept the changes?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions