OS FreeCAD method Tried Resulting tools System Python
Windows Portable .7z install tested freecad.cmd
freecad.pip
No
Windows exe installer No
Windows Conda tested FreeCAD.so and freecad.py Yes
Linux (Ubuntu) apt-get install tested freecadcmd No
Linux (Ubuntu) AppImage tested freecad.cmd No
Linux (Ubuntu) Conda tested FreeCAD.so and freecad.py Yes
Linux (Ubuntu) snap tested freecad.cmd
freecad.pip
No
​Mac  Conda tested FreeCAD.so and freecad.py Yes
Mac Intel disk image No
Mac ARM disk image No

Installation routes tested

Testing in CI

Conversion tests - checks that 52 stp files convert to openmc and mcnp CSG files 

 

Adding minimal ci to check cad converts by shimwell · Pull Request #52 · GEOUNED-org/GEOUNED (github.com)

PyPi packaging

Plan to make an action that automates the PyPI release

 

Pure python PyPI first

Action with login cad_to_dagmc/.github/workflows/python-publish.yml at main · fusion-energy/cad_to_dagmc

Action with trusted publisher openmc-plasma-source/.github/workflows/python-publish.yml at main · fusion-energy/openmc-plasma-source

 

Attempt Scikit build core based PyPI packaging to include FreeCAD

 

Action to update the PyPI action using Scikit build

cibuildwheel (pypa.io)

 

Conda packaging

GEOUNED channel on anaconda.org

 

conda forge based conda package (need CI, docs, pypi first)

 

example recipe conda-forge/dagmc-feedstock: A conda-smithy repository for dagmc. (github.com)

 

Guidelines for making conda package Contributing packages | conda-forge | community-driven packaging for conda

 

Documentation

Documentation

pip install .[docs] - installs geouned with mkdocs

 

mkdocs  serve - converts md files to html and opens up local webserver

 

mkdocs gh-deploy - converts md to html and pushes to gh-pages branch triggering a docs update

 

pages build and deployment · shimwell/GEOUNED@1b37cbf (github.com)

 

Deploying Sphinx documentation to GitHub Pages — How to document your research software documentation (coderefinery.github.io)

Refactoring requests

Possible to rename the package from GEOUNED to geouned as recommended by pep8?

 

Possible to change the class names GEOUNED and GEOReverse to CadToCsg and CsgToCad or these can just be functions instead of classes named cad_to_csg and csg_to_cad

 

Pass arguments into the class init or function directly. Move the config.iuni reading to a class method called .from_config. Or use Json and ** to expand to keywords

 

These would make, testing, using, documenting and packaging easier

deck

By Jonathan Shimwell